Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.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使用GROUPBY或DISTINCT返回第一条记录_Sql_Sql Server_Sql Server 2005 - Fatal编程技术网

SQL使用GROUPBY或DISTINCT返回第一条记录

SQL使用GROUPBY或DISTINCT返回第一条记录,sql,sql-server,sql-server-2005,Sql,Sql Server,Sql Server 2005,我有一张这样的桌子: group id 1 10 1 11 1 12 2 13 3 14 group id 1 10 2 13 3 14 我想返回每组的第一条记录,因此我的表应该返回如下内容: group id 1 10 1 11 1

我有一张这样的桌子:

group        id
1            10
1            11
1            12
2            13
3            14
group        id
1            10
2            13
3            14
我想返回每组的第一条记录,因此我的表应该返回如下内容:

group        id
1            10
1            11
1            12
2            13
3            14
group        id
1            10
2            13
3            14
在SQL中执行此操作的最佳方法是什么?

这就足够了:

SELECT group, min(id) id FROM table
GROUP BY group
考虑到“第一个”考虑的是最小数量。

这就足够了:

SELECT group, min(id) id FROM table
GROUP BY group

请注意,对于“第一个”,这是考虑最小数量。

Group by将只返回每个组的第一行。所以按意愿分组就足够了

SELECT * FROM `your_table`
GROUP BY group

sql FIDLE将只返回每个组的第一行。所以按意愿分组就足够了

SELECT * FROM `your_table`
GROUP BY group

sql FIDLE

假设较早的记录总是具有较小的id安全吗?假设较早的记录总是具有较小的id安全吗?使用
min
不能保证返回每个组的第一条记录使用
min
不能保证返回每个组的第一条记录这不起作用,因为问题说明我需要返回group和id,因此id需要在group by子句中返回5行(不是问题所在),或者在所选的answerhi@chirs中进行聚合,可能我不理解您想要什么,但您是否尝试运行该查询。请注意,min()不会选择每个组的第一条记录。它与sql server 2005中的工作方式不同,不确定sql FIDLE使用的是什么。这不起作用,因为问题说明我需要返回group和id,所以id需要在group by子句中,返回5行(不是所问的内容)或者像在选定的answerhi@chirs中一样,我可能不明白您想要什么,但您是否尝试运行该查询。请注意,min()不会选择每个组的第一条记录。它不像sql server 2005中那样工作,不确定sql FIDLE使用什么