我有SQL語句:有幾個參數選擇來自行最小值
select col1,col2,col3,col4,col5 from table1
group by col1,col2,col3,col4
產生見下表:
我想只顯示行,與最小的值相同的參數。 結果應該是如下:
怎麼寫呢?
我有SQL語句:有幾個參數選擇來自行最小值
select col1,col2,col3,col4,col5 from table1
group by col1,col2,col3,col4
產生見下表:
我想只顯示行,與最小的值相同的參數。 結果應該是如下:
怎麼寫呢?
請在下面嘗試。
SELECT Year
,Month
,COL1
,COL2
,COL3
,COL4
,COL5
FROM
(SELECT Year
,Month
,COL1
,COL2
,COL3
,COL4
,COL5
,ROW_NUMBER() OVER(PARTITION BY COL4 ORDER BY COL5) AS RN
FROM table1) AS X
WHERE X.RN = 1
使用MIN()與OVER子句與最小值的所有行的集合:
SELECT
col1,
col2,
col3,
col4,
col5,
min(col5) OVER (PARTITION BY col1, col2, col3, col4) AS min_for_columns_set
FROM table1
UPD: 爲組設置爲僅最小值:
SELECT
col1,
col2,
col3,
col4,
min(col5) as min_value
FROM table1
group BY col1, col2, col3, col4
這將返回表的所有行... –
@ZoharPeled的確。添加明顯的變量與GROUP BY字段設置 –
你的第二個查詢仍然會返回表的所有行,但現在你會再次得到col5與標題min_value ... –
除非我錯過了一些明顯的東西,它應該是簡單的t他的:
select col1, col2, col3, col4, min(col5)
from table1
group by col1, col2, col3, col4
'col1 by col1,col2,col3,col4'每個col1,col2,col3,col4'只產生一個*行。你怎麼得到上述結果? –
對不起,我的錯誤,沒有組 – 4est
我認爲你可以使用HAVING 有點像HAVING Col5 = MIN(Col5) – AntDC