📜  sql 百分比 - SQL (1)

📅  最后修改于: 2023-12-03 15:05:19.117000             🧑  作者: Mango

SQL 百分比

SQL 中的百分比查询是常见的一种数据分析需求,可以用于统计具有某些特定属性的记录在总记录中所占的比例。

基本语法

下面是 SQL 中使用百分比查询的基本语法:

SELECT
     (COUNT(*) * 100.0 / SUM(COUNT(*)) OVER ()) AS percentage,
     column1, column2, ...
FROM
     table_name
GROUP BY
     column1, column2, ...

其中,COUNT(*) 表示统计的总数量,SUM(COUNT(*)) OVER () 表示对总数量进行求和,percentage 表示计算出来的百分比,column1, column2, ... 是需要分组的列名。

示例

下面是一个示例,假设我们有一个 orders 表,其中包含订单的信息,我们要计算各个国家的订单量所占的百分比:

SELECT
     (COUNT(*) * 100.0 / SUM(COUNT(*)) OVER ()) AS percentage,
     country
FROM
     orders
GROUP BY
     country

运行以上 SQL 语句后,会得到下面的结果:

| percentage | country | |------------|---------| | 46.67 | USA | | 33.33 | UK | | 20.00 | Canada |

以上结果表示美国的订单量占总订单量的 46.67%,英国的订单量占总订单量的 33.33%,加拿大的订单量占总订单量的 20.00%。

注意事项
  • 查询语句中需要使用 SUM(COUNT(*)) OVER () 对总记录数进行汇总,否则计算出来的百分比可能不准确
  • 需要分组的列必须出现在 GROUP BY 子句中
  • 如果分组的列中有 NULL 值,对应的行会单独分为一组
  • 在某些数据库中,需要使用 ROUND 函数对结果进行舍入,以得到更精确的百分比