SELECT date( `captureTime` ) dateDay, DATE_FORMAT( `captureTime` , '%H' ) dateHour, DATE_FORMAT( `captureTime` , '%i' ) dateQuarter, max( channel1_Data ) , max( channel2_Data ) , max( channel3_Data ) , min( channel1_Data ) , min( channel2_Data ) , min( channel3_Data )
FROM `sensordata`
WHERE `Sensor_sensorSerialNo` =1
AND `captureTime` >= '2011-10-16 22:15:11'
AND `captureTime` <= '2011-10-17 23:59:59'


我想在运行选择查询后获取从2011-10-16 22:15:11到2011-10-17 23:59:59的所有数据。并且“ captureTime”列也需要分为三列(即“ dateDay”,“ dateHour”和“ dateQuater”)。但是,运行上述查询后只能得到一行结果。我在那里看不到任何错误。

谁能指出错误?提前致谢!

最佳答案

最小,最大函数是聚合函数,通常与Group By子句一起使用。但是,如果未使用Group By子句,则对完整表数据执行计算后将返回Min或Max值。因此,仅应返回one row,这将是最小值或最大值。如果要选择其他列,则这些列必须出现在Group By子句中。
MySql允许执行此查询,但是其他dbms(例如SQLServer)甚至不允许执行此查询。

http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html

关于mysql - 获取所有数据并将一栏分为三栏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8119794/

10-15 15:58