Skip to content
Siminov Framework edited this page Jan 16, 2016 · 8 revisions

Sum

Exposes API's to return sum of all non-NULL values in the group. If there are no non-NULL input rows then sum() returns NULL but total() returns 0.0. NULL is not normally a helpful result for the sum of no rows but the SQL standard requires it and most other SQL database engines implement sum() that way so SQLite does it in the same way in order to be compatible. The result of sum() is an integer value if all non-NULL inputs are integers.

Android API: Sum

    public ISum sum() throws DatabaseException;
  • Android: ISum Interface
    public interface ISum {

        public ISumClause where(String column);
	
        public ISum whereClause(String whereClause);
	
        public ISumClause and(String column);
	
        public ISumClause or(String column);

        public ISum groupBy(String...columns);
	
        public ISumClause having(String column);

        public ISum havingClause(String havingClause);
	
        public ISum column(String column);
	
        public Object execute() throws DatabaseException;

    }
  • Android: ISumClause Interface
    public interface ISumClause {

        public ISum equalTo(String value);

        public ISum notEqualTo(String value);
	
        public ISum greaterThan(String value);
	
        public ISum greaterThanEqual(String value);
	
        public ISum lessThan(String value);
	
        public ISum lessThanEqual(String value);
	
        public ISum between(String start, String end);
	
        public ISum like(String like);
	
        public ISum in(String...values);

    }
Android Sample: Get Sum
    int sum = 0;
	
    try {
        sum = new Book().sum().column(Book.COLUMN_NAME_WHICH_CONTAIN_NUMBRIC_VALUE).where(Book.TITLE).equalTo("C").execute();
    } catch(DatabaseException de) {
		//Log it.
    }
	

iOS API: Sum

    - (id<SICISum>)sum;
  • iOS: SICISum Interface
    @protocol SICISum <NSObject>

    - (id<SICISumClause>)where:(NSString *)column;

    - (id<SICISum>)whereClause:(NSString *)whereClause;

    - (id<SICISumClause>)and:(NSString *)column;

    - (id<SICISumClause>)or:(NSString *)column;

    - (id<SICISum>)groupBy:(NSArray *)columns;

    - (id<SICISumClause>)having:(NSString *)column;

    - (id<SICISum>)havingClause:(NSString *)havingClause;

    - (id<SICISum>)column:(NSString *)column;

    - (id)execute;

   @end
  • iOS: SICISumClause Interface
    @protocol SICISumClause <NSObject>

    - (id<SICISum>)equalTo:(id)value;

    - (id<SICISum>)notEqualTo:(id)value;

    - (id<SICISum>)greaterThan:(id)value;
 
    - (id<SICISum>)greaterThanEqual:(id)value;

    - (id<SICISum>)lessThan:(id)value;

    - (id<SICISum>)lessThanEqual:(id)value;

    - (id<SICISum>)between:(id)start end:(id)end;

    - (id<SICISum>)like:(id)like;

    - (id<SICISum>)in:(id)values;

    @end
iOS Sample: Get Sum
    double sum = 0;
	
    @try {
        sum = [[[[[[[Book alloc] init] sum] column:[Book COLUMN_NAME_WHICH_CONTAIN_NUMBRIC_VALUE]] where:[Book TITLE]] equalTo:@"C"] execute];
    } @catch(SICDatabaseException *databaseException) {
		//Log it.
    }
	

Windows API: Sum

    public ISum Sum();
  • Windows: ISum Interface
    
    public interface ISum 
    {

        ISumClause Where(String column);
	
        ISum WhereClause(String whereClause);
	
        ISumClause And(String column);
	
        ISumClause Or(String column);

        ISum GroupBy(String[] columns);
	
        ISumClause Having(String column);

        ISum HavingClause(String havingClause);
	
        ISum Column(String column);
	
        double Execute();

    }
  • Windows: ISumClause Interface
    public interface ISumClause 
    {

        ISum EqualTo(String value);

        ISum NotEqualTo(String value);
	
        ISum GreaterThan(String value);
	
        ISum GreaterThanEqual(String value);
	
        ISum LessThan(String value);
	
        ISum LessThanEqual(String value);
	
        ISum Between(String start, String end);
	
        ISum Like(String like);
	
        ISum In(String[] values);

    }

####### Windows Sample: Get Sum

    double sum = 0;
	
    try 
    {
        sum = new Book().Sum().Column(Book.COLUMN_NAME_WHICH_CONTAIN_NUMBRIC_VALUE).Where(Book.TITLE).EqualTo("C").Execute();
    } 
    catch(DatabaseException de) 
    {
		//Log it.
    }
	

JavaScript API: Sum

    this.sum = function();
  • JavaScript: ISum Interface
    
    function ISum() {

        this.where = function(column);
	
        this.whereClause = function(whereClause);
	
        this.and = function(column);
	
        this.or = function(column);

        this.groupBy = function(columns);
	
        this.having = function(column);

        this.havingClause = function(havingClause);
	
        this.column = function(column);
	
        this.execute = function();

        this.executeAsync = function(callback, transaction);

    }
  • JavaScript: ISumClause Interface
    function ISumClause {

        this.equalTo = function(value);

        this.notEqualTo = function(value);
	
        this.greaterThan = function(value);
	
        this.greaterThanEqual = function(value);
	
        this.lessThan = function(value);
	
        this.lessThanEqual = function(value);
	
        this.between = function(start, end);
	
        this.like = function(like);
	
        this.in = function(values);

    }

####### JavaScript Sample: Get Sum

            /** Sum Sample **/

    double sum = 0;
	
    try {
        sum = new Book().sum().column(Book.COLUMN_NAME_WHICH_CONTAIN_NUMBRIC_VALUE).where(Book.TITLE).equalTo("C").execute();
    } catch(de) {
		//Log it.
    }
	
            /** Sum Async Sample **/

    var callback = new Callback();
    callback.onSuccess = function(sum) {

    }

    new Book().sum().executeAsync(callback);
            /** Sum Async Transaction Sample **/
 
    var callback = new Callback();
    callback.onExecute = function(transaction) {

        var sumCallback = new Callback();
        sumCallback.onSuccess = function() {

        }

        new Book().sum().executeAsync(sumCallback, transaction);
    }

    callback.onSuccess = function() {

    }

    var databaseDescriptor = new Lession().getDatabaseDescriptor();
    Database.beginTransactionAsync(databaseDescriptor, callback);