首页 > 解决方案 > 根据一行计算多行

问题描述

我想我只是没有得到搜索结果,因为这应该在这里的某个地方得到回答,因为我在输入标题时遇到了麻烦。

我的表如下所示:

Name        Element  City  
Design Inc  51024    New York  
Plant Corp  51024    Chicago  
Energy Ltd  9665     Boston

如果我写

Select Name, Element, City  
From Table  
Where City = 'New York'

基于元素,这里是相同的值,我希望输出是

计数

For New York  
Name = 2  
Element = 1  

芝加哥也有同样的输出。我在使用 where 子句时遇到了麻烦,因为显然如果我将 = 放到一个城市,我得到的只是一行。

谢谢

标签: sqlsql-server

解决方案


你需要GROUP BY子句:

SELECT COUNT(Name) AS Name_count, COUNT(DISTINCT Element) AS Element_count
FROM Table t
WHERE City = 'New York'
GROUP BY Element;

推荐阅读