提问人:Joe 提问时间:2/27/2023 最后编辑:Thom AJoe 更新时间:2/27/2023 访问量:42
如何对所有重复项进行计数或总和,并使每个唯一数据都有一行
how to put a count or sum to all duplicates and make every unique data has a row
问:
我有一个名为 Table1 的表,其中包含字段子项、类别和频率。我想通过按类别计数来填充频率。
子项 | 类别 | 频率 |
---|---|---|
机 管 局 | 苹果 | |
BB型 | 苹果 | |
抄送 | 香蕉 | |
BB型 | 葡萄 | |
机 管 局 | 苹果 | |
机 管 局 | 香蕉 | |
抄送 | 香蕉 | |
BB型 | 葡萄 | |
机 管 局 | 苹果 |
我想实现这个输出
子项 | 类别 | 频率 |
---|---|---|
机 管 局 | 苹果 | 3 |
机 管 局 | 香蕉 | 1 |
BB型 | 苹果 | 1 |
BB型 | 葡萄 | 2 |
抄送 | 香蕉 | 2 |
我的代码是
SELECT
DISTINCT a.Category,
a.Subkey,
SUM(Case when a.Category = 'apple' then 1
when a.Category = 'banana' then 1
when a.Category = 'grapes' then 1
else 0 end) AS Frequency
FROM Table1 as a
Group BY Category, Subkey
我似乎没有这个输出。你可以帮我吗?我的sql基于MS SQL Server 2005功能。唯一受支持的操作是 SELECT 语句。
答:
0赞
siggemannen
2/27/2023
#1
也许我错过了一些东西,但为什么不呢:
select Subkey, Category ,COUNT(*)
FROM Table1
GROUP BY SubKey, Category
或者,如果要更新某些列:
UPDATE t
SET frequency = x.frequency
FROM table1 t
INNER JOIN (
SELECT COUNT(*) AS frequency
, subkey, category
FROM table1 t2
GROUP BY subkey, category
) x
ON x.subkey = t.subkey
AND x.category = t.category
评论
CASE
COUNT(Category
DISTINCT
GROUP BY
DISTINCT
GROUP BY