我正在开展一些工作,我需要能够从两行选择多列的MAX,它们在另一个表的ID中匹配,按FROM_UNIXTIME(date, "%m%")
分组。
我把上面的一个SQL Fiddle示例放在一起。
在示例中,我有两个表,Pairs
和Data
。这些对由id
(非主键)连接。因此,TestDeviceA
和TestDeviceB
的{{1}}均为1; id
和TestDeviceC
的{{1}}均为2。
对于TestDeviceD
表中的每个不同日期,我需要提取两个设备之间id
列的最大值,Data
列的最大值,以及data1
。
示例:
data2
期望的结果将是:
data3
示例查询:
date | device | data1 | data2 | data3
-------------------------------------------------
1234 TestDeviceA 222 234 555
1234 TestDeviceB 292 204 155
我觉得查询中可能缺少某些东西。
什么是更有效和准确的方法来接近它?
答案 0 :(得分:0)
我遇到的问题是,我的data2
和data3
列是binary(16)
(它们存储来自接口统计信息的字节)。
我不得不补充道:
MAX(cast(s.data2 as unsigned integer)) as data2