如何在SQL中执行百分比/总计?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (81)

我有一组典型的客户/订单表,我想显示特定客户负责的销售总额百分比。我可以像这样获得系统中的订单总数:

SELECT COUNT(order_id) FROM orders

我可以得到客户所做的订单总数:

SELECT COUNT(order_id) FROM orders WHERE cust_id = 541

如何将这些结合到一个查询中?

提问于
用户回答回答于

MySQL:

SELECT ROUND(
  100.0 * (
      SUM(IF(cust_id = 541, 1, 0)) / COUNT(order_id)
  ), 1) AS percent_total
FROM orders;

PostgreSQL:

SELECT ROUND(
  100.0 * (
      SUM(CASE WHEN cust_id = 541 THEN 1 ELSE 0 END) / COUNT(order_id)
  ), 1) AS percent_total
FROM orders;
用户回答回答于

使用嵌套查询-

SELECT count(*) / (SELECT count(*) FROM orders)
FROM orders
WHERE cust_id = 541

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励