Sql 在Access中获取列中不同值的数目
为了得到下面的例子,我或多或少尝试了count和distinct的所有组合,除了正确的组合 输入:表t1Sql 在Access中获取列中不同值的数目,sql,ms-access,count,distinct,Sql,Ms Access,Count,Distinct,为了得到下面的例子,我或多或少尝试了count和distinct的所有组合,除了正确的组合 输入:表t1 NAME | FOOD Mary | Apple Mary | Banana Mary | Apple Mary | Strawberry John | Cherries 预期产出: NAME | FOOD Mary | 3 John | 1 注意:玛丽把苹果分成
NAME | FOOD
Mary | Apple
Mary | Banana
Mary | Apple
Mary | Strawberry
John | Cherries
预期产出:
NAME | FOOD
Mary | 3
John | 1
注意:玛丽把苹果分成两行,但她有3行,因为我们在列中有3个不同的值。
我只为她在食物栏中获得了4分,但我需要3分:从一个查询开始,该查询将为您提供名称和食物的独特组合:
select a.name as NAME, a.count(name) as Food
from
(SELECT distinct NAME,Food from table)a
选择不同的t1.NAME,t1.FOOD
从t1开始
然后,您可以将其用作另一个查询中的子查询,在该查询中,您可以按分组和计数:
选择子名称,将*计为[食物]
从…起
选择不同的t1.NAME,t1.FOOD
从t1开始
作为子
按子名称分组;
到目前为止,您尝试的查询是什么?你能把它寄出去吗?
select a.name, sum(a.FoodCount) from(
select distinct name,COUNT(food) as FoodCount from #t1 group by name, food ) as a group by a.name order by 2 desc