我有一个数据行列表(约7000条),这些行以它们的周开始日期为标记。每行数据都有一个与之关联的特定类别,我想创建一个查询或结果表,以获取每个唯一的开始星期几,并基于具有该星期开始日期的数据行汇总每个类别的计数。
我尝试结合使用访问查询和excel修改。
我当前的数据如下:
Category week
A 5/20/2019
B 5/20/2019
B 5/20/2019
C 5/20/2019
A 5/20/2019
A 5/13/2019
C 5/13/2019
C 5/13/2019
B 5/6/2019
A 5/6/2019
A 5/6/2019
我想要以下格式的东西
week A B C
5/20/2019 2 2 1
5/13/2019 1 0 2
5/6/2019 2 1 0
无论是在多个查询中还是其他条件下,我都只需要像这样将数据分开即可。
答案 0 :(得分:2)
一种可能的方法是使用条件聚合,例如:
in
如果您希望将多个类别归为一个类别,则可以在iif
语句的测试表达式中使用select
t.week,
sum(iif(t.category = "A", 1, 0)) as A,
sum(iif(t.category = "B", 1, 0)) as B,
sum(iif(t.category = "C", 1, 0)) as C,
sum(iif(t.category in ("D","E","F"), 1, 0)) as D
from
YourTable t
group by
t.week
表达式:
transform count(*)
select t.week
from YourTable t
group by t.week
pivot t.category;
或者,您可以使用交叉表查询,例如:
YourTable
将{{1}}更改为表格名称。
答案 1 :(得分:2)
答案 2 :(得分:0)
在我看来,最好的方法是,由于您在标记中提到了MS Access,因此将使用内置方法:
TRANSFORM Count(tblMyTableName.week) AS [Count-week]
SELECT tblMyTableName.week
FROM tblMyTableName
GROUP BY tblMyTableName.week
PIVOT tblMyTableName.Category;
tblMyTableName
是表的名称。