Select 具有几个参数的行中的最小值
Select smallest values from rows with couple parameters
我有 SQL 声明:
select col1,col2,col3,col4,col5 from table1
group by col1,col2,col3,col4
生成以下 table:
我只想显示具有相同参数的最小值的行。
结果应如下所示:
怎么写?
UPDATE: 年月
将 MIN() 与 OVER 子句一起用于所有具有集合最小值的行:
SELECT
col1,
col2,
col3,
col4,
col5,
min(col5) OVER (PARTITION BY col1, col2, col3, col4) AS min_for_columns_set
FROM table1
更新:
仅组集的最小值:
SELECT
col1,
col2,
col3,
col4,
min(col5) as min_value
FROM table1
group BY col1, col2, col3, col4
除非我遗漏了一些明显的东西,否则应该是这样的:
select col1, col2, col3, col4, min(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
我有 SQL 声明:
select col1,col2,col3,col4,col5 from table1
group by col1,col2,col3,col4
生成以下 table:
我只想显示具有相同参数的最小值的行。 结果应如下所示:
怎么写?
UPDATE: 年月
将 MIN() 与 OVER 子句一起用于所有具有集合最小值的行:
SELECT
col1,
col2,
col3,
col4,
col5,
min(col5) OVER (PARTITION BY col1, col2, col3, col4) AS min_for_columns_set
FROM table1
更新: 仅组集的最小值:
SELECT
col1,
col2,
col3,
col4,
min(col5) as min_value
FROM table1
group BY col1, col2, col3, col4
除非我遗漏了一些明显的东西,否则应该是这样的:
select col1, col2, col3, col4, min(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