繁体   English   中英

如何从SQL查询结果返回特定的行到底部?

[英]How to return a specific row to the Bottom from a SQL Query results?

我有一个简单的SQL查询,它返回数据为

select [BusinessModel], count(*) As Total from DimHotelExpand
group by [BusinessModel] 

结果如下:

DA        53894
DL        7098
ECM       1472
Flex      14789
GDS       33487
Lead      1499050
MT        71306
Unknown   572467

我希望值“ Lead”的行显示在结果的底部。 我怎样才能做到这一点?

试试这个-

SELECT 
      d.BusinessModel
    , Total = COUNT(1)
FROM dbo.DimHotelExpand d
GROUP BY d.BusinessModel
ORDER BY 
      CASE WHEN d.BusinessModel = 'Lead' THEN 0 ELSE 1 END
    , Total

您可以按总计列排序(因为Lead的计数更高),如下所示:

SELECT [BusinessModel], count(*) As Total from DimHotelExpand
GROUP BY [BusinessModel]
ORDER BY count(*)

如果您不知道Lead是否始终具有最大价值,可以尝试一下:

select 
    [BusinessModel], count(*) As Total 
from DimHotelExpand
group by 
    [BusinessModel] 
order by 
    case [BusinessModel] when 'Lead' then 1 else 0 end asc

您可以尝试“全部联合”。

select [BusinessModel], count(*) As Total from DimHotelExpand
where [BusinessModel] <> 'Lead'
group by [BusinessModel] 
union all
select [BusinessModel], count(*) As Total from DimHotelExpand
where [BusinessModel] = 'Lead'
group by [BusinessModel] 

我认为使用“排序依据”的解决方案效果不佳。 仅当“ Lead”是更大的商务模型时才能正常工作。

我认为frikozoid解决方案也是有效的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM