我想要一个SQL语句来获取具有最小值的行到" C4"。
考虑一下表:
我需要这样的东西
我需要对N2和N3进行分组,因为C2和C3的值是相同的,我可以选择任何C4到组的值,在这种情况下我们可以取10或20,或者在C1中使用相同的N4和N5。可以花12或14。
不需要灌浆的最大值,我需要一个值与C2和C3是相同的。 C1是Id,可以是1,2,3 ..等等。
感谢您的帮助!
答案 0 :(得分:1)
SELECT * FROM yourtable
WHERE C4 = (SELECT MIN(C4) FROM yourtable)
答案 1 :(得分:1)
无法将您的问题与显示的预期答案完全匹配。
我想你在这里尝试使用C2
/ C3
列进行分组聚合。你可以试试这个。
SELECT *
FROM [Table_Name] t
JOIN
(
SELECT
C2, C3, MIN(C4) as MIN_C4
FROM
[Table_Name]
GROUP BY C2, C3
) Aggreated_Table ON Aggreated_Table.C2 = t.C2 AND Aggreated_Table.C3 = t.C3 AND Aggreated_Table.MIN_C4 = t.C4
或者,使用ROW_NUMBER()
SELECT C1, C2, C3, C4
FROM
(
SELECT *, ROW_NUMBER() OVER (PARTITION BY C2, C3 ORDER BY C4) AS rk FROM [TABLE_NAME]
) Ranked_Table
WHERE rk = 1