SQL:每个条件只有一行的嵌套查询(第一行?)
我很难回答一个简单的问题 这是我的桌子:SQL:每个条件只有一行的嵌套查询(第一行?),sql,sql-server,Sql,Sql Server,我很难回答一个简单的问题 这是我的桌子: DIA PALE POWER COST 8 7 82 335 8 7 85 335 <-- 8 7 96 335 <-- 8 8 120 345 9 7 110 324 我有了查询的开始,但是我缺少了做一些事情的部分,比如FIRST(MIN(POWER)) 任何帮助都将不胜感激 关于您可以使用子查询按成本和功耗(成本优先,最重要
DIA PALE POWER COST
8 7 82 335
8 7 85 335 <--
8 7 96 335 <--
8 8 120 345
9 7 110 324
我有了查询的开始,但是我缺少了做一些事情的部分,比如FIRST(MIN(POWER))
任何帮助都将不胜感激
关于您可以使用子查询按成本和功耗(成本优先,最重要)的顺序对行进行排序,并仅选择每个dia/pale组中排名第一的行
SELECT DIA PALE, POWER, COST
FROM (
SELECT *, RANK() OVER (PARTITION BY DIA, PALE ORDER BY COST, POWER) rank
FROM Table1
) q
WHERE rank=1
这不是一个简单的分组吗
SELECT DIA, PALE, MIN(POWER), COST
FROM From Table1 T1
WHERE [cost] = (Select min([cost])
From Table1
Where dia = T1.dia AND pale = T1.pale)
GROUP BY DIA, PALE, COST
是的,这对上面给出的数据有效,但实际上我有更多的字段,我会像速度一样返回。所以我想知道分组讨论是否是解决方案。
SELECT DIA PALE, POWER, COST
FROM (
SELECT *, RANK() OVER (PARTITION BY DIA, PALE ORDER BY COST, POWER) rank
FROM Table1
) q
WHERE rank=1
SELECT DIA, PALE, MIN(POWER), COST
FROM From Table1 T1
WHERE [cost] = (Select min([cost])
From Table1
Where dia = T1.dia AND pale = T1.pale)
GROUP BY DIA, PALE, COST