mysql - 分组依据和列选择

标签 mysql sql sql-server oracle

我有以下查询

SELECT  McId, MAX(TimeDone) 
FROM    Trace 
WHERE   PcbId = 'C825514362' 
AND  DeviceId <> 0 GROUP BY McId

但我还需要从以下列获取值 Program,DeviceId,OrderNo

是否可以以某种方式将其组合到同一个查询中?

此查询应在 mssql 、 mysql 和 oracle 下运行。

最佳答案

嗯,我猜您想要获取包含 TimeDone 最大值的行的 Program、DeviceId 和 OrderNo 值。据我所知,你必须使用子查询来做到这一点。 类似这样的事情:

SELECT t.McID, t.Program, t.DeviceID, t.OrderNo, t.TimeDone
FROM Trace t,
   (SELECT MAX(TimeDone) as maxtime, McID
 FROM Trace 
 GROUP BY McID) maxresults
WHERE t.McID = maxresults.McID
AND t.TimeDone= maxresults.maxtime;

关于mysql - 分组依据和列选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10717541/

相关文章:

php - 使用PHP根据MySQL结果创建无序列表

sql - 数据库(Oracle 或 ANSI SQL)中具有选定 id 的行的比较和交换操作?

PHP在sql查询中默认时区

sql - 用于 SQL Server 的 Microsoft OLE DB 提供程序错误 '80004005'

sql-server - 将对象保存到数据库的良好做法

mysql - 在 Solr 中对代表货币的小数进行索引的最佳方法是什么?

php - 限制表单提交的数量(考虑多人同时提交)

mysql - 找到 super 键

sql - 如何使用内部连接和案例语句更新表

sql - 如何用表中的新主键替换现有主键?