由另一个表约束的两行MAX

时间:2013-01-09 15:57:13

标签: php mysql

我正在开展一些工作,我需要能够从两行选择多列的MAX,它们在另一个表的ID中匹配,按FROM_UNIXTIME(date, "%m%")分组。

SQLFiddle Example

我把上面的一个SQL Fiddle示例放在一起。

在示例中,我有两个表,PairsData。这些对由id(非主键)连接。因此,TestDeviceATestDeviceB的{​​{1}}均为1; idTestDeviceC的{​​{1}}均为2。

对于TestDeviceD表中的每个不同日期,我需要提取两个设备之间id列的最大值,Data列的最大值,以及data1

示例:

data2

期望的结果将是:

data3

示例查询:

date  |  device      |  data1  |  data2  |  data3 
-------------------------------------------------
1234    TestDeviceA       222       234       555
1234    TestDeviceB       292       204       155

我觉得查询中可能缺少某些东西。

什么是更有效和准确的方法来接近它?

1 个答案:

答案 0 :(得分:0)

我遇到的问题是,我的data2data3列是binary(16)(它们存储来自接口统计信息的字节)。

我不得不补充道:

MAX(cast(s.data2 as unsigned integer)) as data2