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

Average

Exposes API's to get average value of all non-NULL X within a group. String and BLOB values that do not look like numbers are interpreted as 0. The result of avg() is always a floating point value as long as at there is at least one non-NULL input even if all inputs are integers. The result of avg() is NULL if and only if there are no non-NULL inputs.

Android API: Average

    public IAverage avg() throws DatabaseException;
  • Android: IAverage Interface
    public interface IAverage {

        public IAverageClause where(String column);
	
        public IAverage whereClause(String whereClause);
	
        public IAverageClause and(String column);
	
        public IAverageClause or(String column);

        public IAverage groupBy(String...columns);

        public IAverageClause having(String column);

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

    }
  • Android: IAverageClause Interface
    public interface IAverageClause {

        public IAverage equalTo(String value);

        public IAverage notEqualTo(String value);
	
        public IAverage greaterThan(String value);
	
        public IAverage greaterThanEqual(String value);
	
        public IAverage lessThan(String value);
	
        public IAverage lessThanEqual(String value);
	
        public IAverage between(String start, String end);
	
        public IAverage like(String like);

        public IAverage in(String...values);

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

iOS API: Average

    - (id<SICIAverage>)avg;
  • iOS: SICIAverage Interface
    @protocol SICIAverage <NSObject>

    - (id<SICIAverageClause>)where:(NSString *)column;
	
    - (id<SICIAverage>)whereClause:(NSString *)whereClause;
	
    - (id<SICIAverageClause>)and:(NSString *)column;
	
    - (id<SICIAverageClause>)or:(NSString *)column;

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

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

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

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

    - (id)execute;

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

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

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

    - (id<SICIAverage>)greaterThan:(id)value;

    - (id<SICIAverage>)greaterThanEqual:(id)value;

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

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

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

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

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

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

Windows API: Average

    public IAverage Avg();
  • Windows: IAverage Interface
    public interface IAverage 
    {

        IAverageClause Where(String column);

        IAverage WhereClause(String whereClause);
	
        IAverageClause And(String column);
	
        IAverageClause Or(String column);

        IAverage GroupBy(String[] columns);

        IAverageClause Having(String column);

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

    }
  • Windows: IAverageClause Interface
    public interface IAverageClause 
    {

        IAverage EqualTo(String value);

        IAverage NotEqualTo(String value);
	
        IAverage GreaterThan(String value);
	
        IAverage GreaterThanEqual(String value);
	
        IAverage LessThan(String value);
	
        IAverage LessThanEqual(String value);
	
        IAverage Between(String start, String end);
	
        IAverage Like(String like);
	
        IAverage In(String[] values);
 
    }
Windows Sample: Get Average
    double average = 0;

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

JavaScript API: Average

    this.avg = function();
  • JavaScript: IAverage Interface
    function IAverage() {

        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: IAverageClause Interface
    function IAverageClause() {

        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 Average
            /** Average Sample **/

    double average = 0;

    try {
        average = new Book().avg().column(Book.COLUMN_NAME_WHICH_CONTAIN_NUMBRIC_VALUE).where(Book.TITLE).equalTo("C").execute();
    } catch(de) {
		//Log it.
    }
	
            /** Average Async Sample **/

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

    }

    new Book().avg().executeAsync(callback);
            /** Average Sample Async Transaction Sample **/

    var callback = new Callback();
    callback.onExecute = function(transaction) {

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

        }

        new Book().avg().executeAsync(avgCallback, transaction);
    }

    callback.onSuccess = function() {

    }

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