更好地查询“选择”中的“选择”

问题描述 投票:1回答:1

是否有更好和更短的方法来产生如下所示的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

当我在小数据上使用此查询时似乎没有什么区别,但是当我在大数据上使用此查询时,查询变慢。 (我的行超过60万)

目前,我有如下所示的表

enter image description here

注意:我正在使用SQL Server 2008 R2

sql-server sql-server-2008 sql-server-2008-r2
1个回答
2
投票

尝试一下:

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

select TowerID, COUNT(DISTINCT [USER]) as 'QTY'
from ColoEngDBLocal..Carriers
where [Status] not like '%removed%'
group by TowerID
ORDER BY TowerId
© www.soinside.com 2019 - 2024. All rights reserved.