我有下表:
| 日|类别|计数|
| - -|- -|- -|
| 第一天|A级|10个|
| 第一天|B|二十个|
| 第二天|A级|八个|
| 第二天|B| 10个|
| 第三日|A级|六个|
| 第三日|B|五个|
我试图创建一个百分比列,方法是将第三列(Count)中的值除以第二列(Category;在本例中,A和B分别为10和20)。这应输出如下内容:
| 日|类别|计数|百分比|
| - -|- -|- -|- -|
| 第一天|A级|10个|100%的|
| 第一天|B|二十个|100%的|
| 第二天|A级|八个|百分之八十|
| 第二天|B| 10个|百分之五十|
| 第三日|A级|六个|百分之六十|
| 第三日|B|五个|百分之二十五|
我得到的最远的是下面的代码,但我不知道如何按类别划分。
SELECT
day,
category,
count,
count/(SELECT count FROM table WHERE day = 'D1')*100 AS pct
FROM
table
ORDER BY 1
)
3条答案
按热度按时间3bygqnnd1#
这与Asgar的查询相同,但删除了不必要的表派生-
afdcj2ne2#
这应该可以满足您要求:
我假设分母总是基于“D1”,并且日类别的组合总是唯一的。
5lwkijsr3#
这句话对你来说应该很准确: