Average
Siminov Framework edited this page Jan 16, 2016
·
10 revisions
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.
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);
}
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.
}
- (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
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.
}
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);
}
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.
}
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);
}
/** 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);