簡體   English   中英

如何將SQL結果划分為類別

[英]How to divide SQL results into categories

我想從SQL Server數據庫中生成如下報告:

  • 條目的百分比<X
  • X <條目的百分比<Y
  • 條目百分比> = Y
  • 所有輸入值的平均值
  • 所有條目的標准差

因此,基本上,我將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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM