[英]How to divide SQL results into categories
我想從SQL Server數據庫中生成如下報告:
因此,基本上,我將db的內容分為“低於平均”,“平均”和“高於平均”類別,這在紙面上聽起來很簡單,但顯然需要做很多工作才能轉入SQL指令。
搜索后,看來唯一的解決方法是用不同的請求查詢數據庫5次。 而且,使用SQL來計算屬於每個類別的條目的百分比似乎是不可能的(例如count(criteria)/ count(*),但這是行不通的)。
可以完全在SQL Server上完成此操作嗎?還是必須離線查詢所有信息並在代碼中構建值?
您可以使用條件聚合和單個查詢:
select avg(case when val < @x then 1.0 else 0 end) as ratio_lt_x,
avg(case when val > @x and val < @y then 1.0 else 0 end) as ratio_bt_x_y,
avg(case when val >= @y then 1.0 else 0 end) as ratio_gt_y,
avg(val), stdev(val)
from t;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.