gpt4 book ai didi

sql-server - 如何在SQL Server查询中使用group by?

转载 作者:行者123 更新时间:2023-12-02 17:31:00 25 4
gpt4 key购买 nike

我在 SQL Server 中遇到分组依据问题

我有这个简单的 SQL 语句:

select * 
from Factors
group by moshtari_ID

我收到此错误:

Msg 8120, Level 16, State 1, Line 1
Column 'Factors.ID' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

这是我没有分组的结果:

enter image description here

这是 group by 命令的错误:

enter image description here

我的问题出在哪里?

最佳答案

一般来说,一旦开始 GROUPing,SELECT 中列出的每一列都必须是 GROUP 中的列或其某种聚合。假设您有一个这样的表:

| ID | Name        | City        |
| 1 | Foo bar | San Jose |
| 2 | Bar foo | San Jose |
| 3 | Baz Foo | Santa Clara |

如果您想获取数据库中所有城市的列表,并尝试过:

SELECT * FROM table GROUP BY City

...这会失败,因为您要求的列(ID 和名称)不在 GROUP BY 子句中。您可以改为:

SELECT City, count(City) as Cnt FROM table GROUP BY City

...这会让你:

| City        | Cnt |
| San Jose | 2 |
| Santa Clara | 1 |

...但不会获取您的 ID 或姓名。您可以使用例如做更复杂的事情子选择或自连接,但基本上你想要做的事情是不可能的。进一步分解您的问题(您希望数据是什么样的?),然后从那里开始。

祝你好运!

关于sql-server - 如何在SQL Server查询中使用group by?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38707648/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com