采取与相同值的分组中的每一行我有这个数据库:检查行更大的价值,然后通过ID
╔═════════╦══════╦══════════╦═══════════╦════╦═════════╗
║ ID_Elab ║ Step ║ ID_Progr ║ ID_Causal ║ GI ║ Minutes ║
╠═════════╬══════╬══════════╬═══════════╬════╬═════════╣
║ 8 ║ 1 ║ 8 ║ 19 ║ 0 ║ 480 ║
║ 8 ║ 2 ║ 1391 ║ 19 ║ 0 ║ 480 ║
║ 8 ║ 3 ║ 1781 ║ 19 ║ 0 ║ 480 ║
║ 10 ║ 1 ║ 10 ║ 50 ║ 0 ║ 480 ║
║ 10 ║ 1 ║ 43 ║ 14 ║ 0 ║ 210 ║
║ 10 ║ 2 ║ 99 ║ 50 ║ 0 ║ 480 ║
║ 10 ║ 2 ║ 100 ║ 14 ║ 0 ║ 210 ║
║ 10 ║ 3 ║ 124 ║ 50 ║ 0 ║ 480 ║
║ 10 ║ 3 ║ 125 ║ 72 ║ 0 ║ 120 ║
║ 10 ║ 3 ║ 126 ║ 73 ║ 0 ║ 90 ║
║ 11 ║ 1 ║ 8 ║ 19 ║ 0 ║ 480 ║
║ 11 ║ 2 ║ 1391 ║ 19 ║ 0 ║ 480 ║
╚═════════╩══════╩══════════╩═══════════╩════╩═════════╝
我需要检查,对每个组ID,这是更大的Step
值和然后选择具有该Step
值的特定组的每一行。
以上表将变为:
╔═════════╦══════╦══════════╦═══════════╦════╦═════════╗
║ ID_Elab ║ Step ║ ID_Progr ║ ID_Causal ║ GI ║ Minutes ║
╠═════════╬══════╬══════════╬═══════════╬════╬═════════╣
║ 8 ║ 3 ║ 1781 ║ 19 ║ 0 ║ 480 ║
║ 10 ║ 3 ║ 124 ║ 50 ║ 0 ║ 480 ║
║ 10 ║ 3 ║ 125 ║ 72 ║ 0 ║ 120 ║
║ 10 ║ 3 ║ 126 ║ 73 ║ 0 ║ 90 ║
║ 11 ║ 2 ║ 1391 ║ 19 ║ 0 ║ 480 ║
╚═════════╩══════╩══════════╩═══════════╩════╩═════════╝
我试图按照this question,这是我得到的查询:
SELECT *
FROM testVela a
JOIN (
SELECT ID_Elab, MAX(Step) AS Step, ID_Progr, ID_Causal, GI, Minutes
FROM testVela
GROUP BY ID_Elab, ID_Progr, ID_Causal, Minutes
) b
ON a.ID_Elab = b.ID_Elab AND a.Step = b.Step
但这个查询返回的东西完全错了...怎么可能我做?
结果是什么? – NoDataFound 2014-08-27 07:54:21
只是原来的一个,每步值设置为最大... – 2014-08-27 07:54:39