[英]How to divide a value of a column to the total value of that column for every row in SQL?
[英]How to divide the value of a column by another (the divisor is always a predefined and fixed row)?
所以基本上我有一張這樣的表格,上面有年份、月份和客戶數量(稱為群組)。 該列之所以稱為群組,是因為在 2015 年 1 月,我計算了我所有的唯一買家,現在我正在檢查有多少人在接下來的幾個月中返回購買更多產品。
+----------------+-----------+
| YEAR | MONTH | COHORT |
+----------------+-----------+
| 2015 | 01 | 100 |
| 2015 | 02 | 54 |
| 2015 | 03 | 32 |
| 2015 | 04 | 29 |
| 2015 | 05 | 26 |
| 2015 | 06 | 17 |
| 2015 | 07 | 09 |
| 2015 | 08 | 03 |
+--------+-------+-----------+
但是,我需要知道從 2015 年 2 月起返回客戶的百分比是多少。 所以我需要這樣的東西:
+----------------+-----------+----------+
| YEAR | MONTH | COHORT | SHARE |
+----------------+-----------+----------+
| 2015 | 01 | 212 | 100% |
| 2015 | 02 | 54 | 25% |
| 2015 | 03 | 32 | 15% |
| 2015 | 04 | 29 | 13% |
| 2015 | 05 | 26 | 12% |
| 2015 | 06 | 17 | 8% |
| 2015 | 07 | 09 | 4% |
| 2015 | 08 | 03 | 1% |
+--------+-------+-----------+----------+
知道最小年份和月份是我的基礎/總隊列,我怎么能做到這一點?
您可以使用標量子查詢來查找 2015 年 1 月隊列的大小。 然后,使用此值對每個后續隊列進行標准化以找到百分比。
SELECT YEAR, MONTH, COHORT,
100.0 * COHORT / (SELECT COHORT FROM yourTable
WHERE YEAR = 2015 AND MONTH = 1) AS SHARE
FROM yourTable
ORDER BY YEAR, MONTH;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.