sql-server - 更好地查询 "Select"内的 "Select"

标签 sql-server sql-server-2008 sql-server-2008-r2

有没有更好、更短的方法来生成如下所示的 SQL 查询? 更好的是更短的查询或/和最快的性能影响到服务器

select TowerID, COUNT(TowerID) as 'QTY'
from (
    select TowerID, [USER] as 'QTY'
    from ColoEngDBLocal..Carriers
    where [Status] not like '%removed%'
    group by TowerID, [USER]
) as a
group by TowerID
order by TowerID

当我在小数据上使用这个查询时,看起来没有什么区别,但是当我在大数据上使用这个查询时,查询变得很慢。 (我有超过 600k 行)

目前我有如下所示的表格

enter image description here

注意:我使用的是SQL Server 2008 R2

最佳答案

试试这个:

简单的COUNT(DISTINCT ....)将为您提供帮助。

select TowerID, COUNT(DISTINCT [USER]) as 'QTY'
from ColoEngDBLocal..Carriers
where [Status] not like '%removed%'
group by TowerID
ORDER BY TowerId

关于sql-server - 更好地查询 "Select"内的 "Select",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59206160/

相关文章:

.net - 如何检测和解决编码错误的Varchar数据?

sql-server-2008 - 用于检查条目是否存在所有提供的元素对的 XPath

sql - 不可变的 SQL 列

sql-server - SQL Server - 指定一天中的时间进行分组

mysql - 如何在 MSSQL 中对单列使用 Group By

mysql - 我需要将我的 Mysql 数据库转换为 SQL Server 2005 数据库

sql-server - 通过 SSIS 仅导入 Excel 的最后一列

ASP.NET 网站产生了数百个到 SQL Server Express 实例的连接 - 如何识别罪魁祸首?

sql - 将 varchar 列与 int 列组合

sql-server - 如何连接到一张表并回退到另一张表?