1、查询多个tag 分段查询 1小时的avg,count
SELECT time_bucket('1 hour', time) AS bucket, avg(value) AS avg_value , count(value) as count_value
FROM xxx WHERE sa in(?1) and time between ?2 AND ?3 GROUP BY bucket ORDER BY bucket DESC
本人的数据库的数据是每秒钟就出来一次数据,我想要查询在一天之内或是某个时间段之内,每几个时间段就查询一次他的avg 、min 、max 、sum 、count 都可以,甚至是查询所有数据。
上边的这个SQL语句和很好的表达了这个需求。不过这个SQL语句是查询每一个小时的统计值。可以改变这个时间,譬如5 minutes、30 minutes、4 hour 甚至是 1 day 都可以。
但是我这里遇到的问题就是‘1 hour ’是自己定义的。如果可以用个参数进行表示,可以随意更改这个时间就好了!!
1、查询多个tag 分段查询 1小时的avg,countSELECT time_bucket('1 hour', time) AS bucket, avg(value) AS avg_value , count(value) as count_value FROM xxx WHERE sa in(?1) and time between ?2 AND ?3 GR...
String[] countArr = new String[23];
carSumList = orderMapper.selectNowCarData(storeId,countArr);
查询
当天
24
小时
sql 语句
SELECT
count( u.id ) AS `value`,
s.date AS text
SELECT
date_add( DATE_FORMAT( CUR.
参考:mysql group by分组
查询
统计数据时,在没有数据时如何自动补0
最终我自己实现的sql如下:
SELECT a.hour hour, ifnull(b.count, 0) count FROM (
SELECT 0 hour UNION ALL SELECT 1 hour UNION ALL SELECT 2 hour UNION ALL SELECT 3 hour UNION A...
`i` int(2) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `num` VALUES ('0');
INSERT INTO `num` VALUES ('1');
INSERT INTO `num` V...
DECLARE @days INT,@date_start DATETIME,@date_end DATETIME ;
set @date_start= '2018-07-29';
set @date_end= '2018-09-01' ;
SET @days = DATEDIFF(DAY, @date_start, @date_end);
select DATEADD(dd,...
定义一个时间类Time,能提供和设置由时、分、秒组成的时间,并编写应用程序,定义时间对象,设置时间和输出该对象提供的时间。 输入格式: 以
24h
制,依次输入Time所需的时、分、秒,中间以空格间隔 输出格式: 以
24h
制,依次输出Time时、分、秒,中间已‘-’间隔,小于10的数字前面补‘0’
int hour, minute, second; // 私有成员变量,表示时、分、秒
public:
Time(int h, int m, int s) { // 构造函数,用于初始化时间
hour = h;
minute = m;
second = s;
void setTime(int h, int m, int s) { // 设置时间的方法
hour = h;
minute = m;
second = s;
void printTime() { // 输出时间的方法
cout << setfill('') << setw(2) << hour << "-" << setw(2) << minute << "-" << setw(2) << second << endl;
int main() {
int h, m, s;
cin >> h >> m >> s; // 输入时、分、秒
Time t(h, m, s); // 创建时间对象
t.printTime(); // 输出时间
return ;