php - 由另一个表约束的两行的最大值

标签 php mysql

我正在做一些事情,我需要能够从两行中选择多列的最大值,它们在另一个表的 ID 中匹配,按 FROM_UNIXTIME(date, "%m%") 分组

SQLFiddle Example

我在上面整理了一个 SQL Fiddle 示例。

在示例中,我有两个表,PairsData。这些对由 id(非主键)连接。因此,TestDeviceATestDeviceBid 均为 1; TestDeviceCTestDeviceDid 均为 2。

对于 Data 表中的每个不同日期,我需要提取两个设备之间 data1 列的最大值,data2< 的最大值 列,data3 也是如此。

例子:

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

期望的结果应该是:

1234    TestDeviceA/TestDeviceB    292   234   555

示例查询:

SELECT FROM_UNIXTIME(date, "%m"), FROM_UNIXTIME(date, "%d"), p.id as PairID, GROUP_CONCAT(device SEPERATOR '/'), MAX(data1), MAX(data2), MAX(data3) 
FROM Data LEFT JOIN Pairs p on p.devicename=device 
GROUP BY p.id,date

我觉得查询中可能缺少某些内容。

什么是更有效、更准确的方法?

最佳答案

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

我必须补充:

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

关于php - 由另一个表约束的两行的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14241166/

相关文章:

javascript - PHP发送邮件功能。如何使一个电子邮件地址收到一封包含基于表格中勾选复选框数量的数据的电子邮件

mysql - SQL大查询优化

mysql - 当我们有复合索引时是否需要正常的 MySql 索引

mysql - 递归计算帖子的评论数

php - 类似于 MySQL 中 Explode 工作的功能

php - 使用 Google Apps 进行站点登录?

php - 我怎样才能从中获取 URL?

java - 如何使用 MySQL Read-Replica 配置 Spring/Hibernate

php - 尝试将多个项目发布到表单提交 PHP 的下一页

php - 如何隐藏 woocommerce 中的特定消息?