簡體   English   中英

如何在 SQL 中制作百分比列?

[英]How to make percentage column in SQL?

超級新來SQL在這里!

我試圖在這里制作第三列,其中包含重新交付的訂單與總訂單的百分比,但我不知道該怎么做(即對於 output 中的第一行,該值應為 4%)

這是我的代碼:

SELECT DISTINCT WH AS Warehouse,
                count(order_id) AS Orders,
                sum(CASE
                        WHEN is_redelivered=1 THEN 1
                        ELSE 0
                    END) AS Redelivered
FROM
  (SELECT DISTINCT o.id AS order_id,
                   wh.code AS WH,
                   o.initial_delivery_date,
                   date(o.delivered_by) AS delivered_by,
                   if(o.delivered_by>o.initial_delivery_date, 1, 0) AS is_redelivered
   FROM `order` o
   JOIN `order_status` os ON o.id = os.id
   JOIN `warehouse` wh ON o.warehouse_id = wh.id
   WHERE o.created_at BETWEEN '2020-11-22' AND '2020-11-28'
     AND os.status != 'Cancelled') orders
GROUP BY WH

這是當前的 output

如果我沒聽錯,你可以這樣做:

select 
    wh.code as wh, 
    count(*) as cnt_orders,
    sum(o.delivered_by > o.initial_delivery_date) as cnt_redelivered
    100 * avg(o.delivered_by > o.initial_delivery_date) as percent_redelivered
from `order` o
join `order_status` os on o.id = os.id
join `warehouse` wh on o.warehouse_id = wh.id
where o.created_at between '2020-11-22' and '2020-11-28' and os.status <> 'cancelled'
group by wh.id, wh.code

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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