Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL:每个条件只有一行的嵌套查询(第一行?)_Sql_Sql Server - Fatal编程技术网

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