Use avg() mysql value for timespan between [24h, 6m]
This commit is contained in:
		
							parent
							
								
									6e4985602e
								
							
						
					
					
						commit
						c9f5002dc2
					
				@ -267,6 +267,55 @@ class Statistics {
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  private getQueryForDaysAvg(div: number, interval: string) {
 | 
			
		||||
    return `SELECT id, UNIX_TIMESTAMP(added) as added,
 | 
			
		||||
      CAST(avg(unconfirmed_transactions) as FLOAT) as unconfirmed_transactions,
 | 
			
		||||
      CAST(avg(tx_per_second) as FLOAT) as tx_per_second,
 | 
			
		||||
      CAST(avg(vbytes_per_second) as FLOAT) as vbytes_per_second,
 | 
			
		||||
      CAST(avg(vsize_1) as FLOAT) as vsize_1,
 | 
			
		||||
      CAST(avg(vsize_2) as FLOAT) as vsize_2,
 | 
			
		||||
      CAST(avg(vsize_3) as FLOAT) as vsize_3,
 | 
			
		||||
      CAST(avg(vsize_4) as FLOAT) as vsize_4,
 | 
			
		||||
      CAST(avg(vsize_5) as FLOAT) as vsize_5,
 | 
			
		||||
      CAST(avg(vsize_6) as FLOAT) as vsize_6,
 | 
			
		||||
      CAST(avg(vsize_8) as FLOAT) as vsize_8,
 | 
			
		||||
      CAST(avg(vsize_10) as FLOAT) as vsize_10,
 | 
			
		||||
      CAST(avg(vsize_12) as FLOAT) as vsize_12,
 | 
			
		||||
      CAST(avg(vsize_15) as FLOAT) as vsize_15,
 | 
			
		||||
      CAST(avg(vsize_20) as FLOAT) as vsize_20,
 | 
			
		||||
      CAST(avg(vsize_30) as FLOAT) as vsize_30,
 | 
			
		||||
      CAST(avg(vsize_40) as FLOAT) as vsize_40,
 | 
			
		||||
      CAST(avg(vsize_50) as FLOAT) as vsize_50,
 | 
			
		||||
      CAST(avg(vsize_60) as FLOAT) as vsize_60,
 | 
			
		||||
      CAST(avg(vsize_70) as FLOAT) as vsize_70,
 | 
			
		||||
      CAST(avg(vsize_80) as FLOAT) as vsize_80,
 | 
			
		||||
      CAST(avg(vsize_90) as FLOAT) as vsize_90,
 | 
			
		||||
      CAST(avg(vsize_100) as FLOAT) as vsize_100,
 | 
			
		||||
      CAST(avg(vsize_125) as FLOAT) as vsize_125,
 | 
			
		||||
      CAST(avg(vsize_150) as FLOAT) as vsize_150,
 | 
			
		||||
      CAST(avg(vsize_175) as FLOAT) as vsize_175,
 | 
			
		||||
      CAST(avg(vsize_200) as FLOAT) as vsize_200,
 | 
			
		||||
      CAST(avg(vsize_250) as FLOAT) as vsize_250,
 | 
			
		||||
      CAST(avg(vsize_300) as FLOAT) as vsize_300,
 | 
			
		||||
      CAST(avg(vsize_350) as FLOAT) as vsize_350,
 | 
			
		||||
      CAST(avg(vsize_400) as FLOAT) as vsize_400,
 | 
			
		||||
      CAST(avg(vsize_500) as FLOAT) as vsize_500,
 | 
			
		||||
      CAST(avg(vsize_600) as FLOAT) as vsize_600,
 | 
			
		||||
      CAST(avg(vsize_700) as FLOAT) as vsize_700,
 | 
			
		||||
      CAST(avg(vsize_800) as FLOAT) as vsize_800,
 | 
			
		||||
      CAST(avg(vsize_900) as FLOAT) as vsize_900,
 | 
			
		||||
      CAST(avg(vsize_1000) as FLOAT) as vsize_1000,
 | 
			
		||||
      CAST(avg(vsize_1200) as FLOAT) as vsize_1200,
 | 
			
		||||
      CAST(avg(vsize_1400) as FLOAT) as vsize_1400,
 | 
			
		||||
      CAST(avg(vsize_1600) as FLOAT) as vsize_1600,
 | 
			
		||||
      CAST(avg(vsize_1800) as FLOAT) as vsize_1800,
 | 
			
		||||
      CAST(avg(vsize_2000) as FLOAT) as vsize_2000 \
 | 
			
		||||
      FROM statistics \
 | 
			
		||||
      WHERE added BETWEEN DATE_SUB(NOW(), INTERVAL ${interval}) AND NOW() \
 | 
			
		||||
      GROUP BY UNIX_TIMESTAMP(added) DIV ${div} \
 | 
			
		||||
      ORDER BY id DESC;`;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  private getQueryForDays(div: number, interval: string) {
 | 
			
		||||
    return `SELECT id, UNIX_TIMESTAMP(added) as added, unconfirmed_transactions,
 | 
			
		||||
      tx_per_second,
 | 
			
		||||
@ -345,7 +394,7 @@ class Statistics {
 | 
			
		||||
  public async $list24H(): Promise<OptimizedStatistic[]> {
 | 
			
		||||
    try {
 | 
			
		||||
      const connection = await DB.pool.getConnection();
 | 
			
		||||
      const query = this.getQueryForDays(120, '1 DAY'); // 2m interval
 | 
			
		||||
      const query = this.getQueryForDaysAvg(120, '1 DAY'); // 2m interval
 | 
			
		||||
      const [rows] = await connection.query<any>({ sql: query, timeout: this.queryTimeout });
 | 
			
		||||
      connection.release();
 | 
			
		||||
      return this.mapStatisticToOptimizedStatistic(rows);
 | 
			
		||||
@ -358,7 +407,7 @@ class Statistics {
 | 
			
		||||
  public async $list1W(): Promise<OptimizedStatistic[]> {
 | 
			
		||||
    try {
 | 
			
		||||
      const connection = await DB.pool.getConnection();
 | 
			
		||||
      const query = this.getQueryForDays(1200, '1 WEEK'); // 20m interval
 | 
			
		||||
      const query = this.getQueryForDaysAvg(1200, '1 WEEK'); // 20m interval
 | 
			
		||||
      const [rows] = await connection.query<any>({ sql: query, timeout: this.queryTimeout });
 | 
			
		||||
      connection.release();
 | 
			
		||||
      return this.mapStatisticToOptimizedStatistic(rows);
 | 
			
		||||
@ -371,7 +420,7 @@ class Statistics {
 | 
			
		||||
  public async $list1M(): Promise<OptimizedStatistic[]> {
 | 
			
		||||
    try {
 | 
			
		||||
      const connection = await DB.pool.getConnection();
 | 
			
		||||
      const query = this.getQueryForDays(3600, '1 MONTH'); // 1h interval
 | 
			
		||||
      const query = this.getQueryForDaysAvg(3600, '1 MONTH'); // 1h interval
 | 
			
		||||
      const [rows] = await connection.query<any>({ sql: query, timeout: this.queryTimeout });
 | 
			
		||||
      connection.release();
 | 
			
		||||
      return this.mapStatisticToOptimizedStatistic(rows);
 | 
			
		||||
@ -384,7 +433,7 @@ class Statistics {
 | 
			
		||||
  public async $list3M(): Promise<OptimizedStatistic[]> {
 | 
			
		||||
    try {
 | 
			
		||||
      const connection = await DB.pool.getConnection();
 | 
			
		||||
      const query = this.getQueryForDays(14400, '3 MONTH'); // 4h interval
 | 
			
		||||
      const query = this.getQueryForDaysAvg(14400, '3 MONTH'); // 4h interval
 | 
			
		||||
      const [rows] = await connection.query<any>({ sql: query, timeout: this.queryTimeout });
 | 
			
		||||
      connection.release();
 | 
			
		||||
      return this.mapStatisticToOptimizedStatistic(rows);
 | 
			
		||||
@ -397,7 +446,7 @@ class Statistics {
 | 
			
		||||
  public async $list6M(): Promise<OptimizedStatistic[]> {
 | 
			
		||||
    try {
 | 
			
		||||
      const connection = await DB.pool.getConnection();
 | 
			
		||||
      const query = this.getQueryForDays(28800, '6 MONTH'); // 8h interval 
 | 
			
		||||
      const query = this.getQueryForDaysAvg(28800, '6 MONTH'); // 8h interval 
 | 
			
		||||
      const [rows] = await connection.query<any>({ sql: query, timeout: this.queryTimeout });
 | 
			
		||||
      connection.release();
 | 
			
		||||
      return this.mapStatisticToOptimizedStatistic(rows);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user