我对此很陌生,所以就这样:我正在尝试从unixtime转换为日期格式,然后按日期将其分组,同时在另一列上计算平均值。这是在MariaDB中。
CREATE OR REPLACE
VIEW `history_uint_view` AS select
`history_uint`.`itemid` AS `itemid`,
date(from_unixtime(`history_uint`.`clock`)) AS `mydate`,
AVG(`history_uint`.`value`) AS `value`
from
`history_uint`
where
((month(from_unixtime(`history_uint`.`clock`)) = month((now() - interval 1 month))) and ((`history_uint`.`value` in (1,
0))
and (`history_uint`.`itemid` in (54799, 54810, 54821, 54832, 54843, 54854, 54865, 54876, 54887, 54898, 54909, 54920, 58165, 58226, 59337, 59500, 59503, 59506, 60621, 60624, 60627, 60630, 60633, 60636, 60639, 60642, 60645, 60648, 60651, 60654, 60657, 60660, 60663, 60666, 60669, 60672, 60675, 60678, 60681, 60684, 60687, 60690, 60693, 60696, 60699, 64610)))
GROUP by 'itemid', 'mydate', 'value'
答案 0 :(得分:0)
如果您选择的聚合函数(如AVG)的列没有聚合函数,则应在GROUP BY
子句中列出除具有聚合函数的列以外的所有列。
所以您的分组依据应该如下:
GROUP by itemid, mydate
如果使用单引号(例如'itemid'
),MariaDB会将其视为字符串,而不是列。