我有一个数据,
ID Name ItemA ItemB ItemC
OXZ234 Adam 4 4 5
OXZ234 Adam 1 2 3
OXZ345 Tarzen 6 7 8
OXDER2 William 9 8 2
OXDER2 William 0 8 0
我需要找到每个人吃多少食物。例如,通过引用前两个记录,我可以说,ID OXZ234的亚当吃了ItemA-5,ItemB-6和ItemC-8。但是对于少量数据,这种手动计算是可以承受的。我有这样的一百万条数据记录。所以最初我需要找到具有相同ID和名称的记录,但只有项目数量不同。
我已尝试通过对所有列进行分组来查找重复记录,如下所示
select ID,Name,ItemA,ItemB,ItemC, COUNT(*)
from DATA_REFRESH
group by ID,Name,ItemA,ItemB,ItemC
having COUNT(*) > 1
但现在我必须识别项目列不同的记录。
所以预期的输出就像,
OXZ234 Adam 2
OXDER2 William 2
OXZ345 Tarzen 1
任何建议都会有所帮助!
答案 0 :(得分:4)
你想要SUM
select ID,
Name,
sum(ItemA) as ItA,
sum(ItemB) as ItB,
sum(ItemC) as ItC,
count(ID) as Occurrences -- Counts the number of entries per person
from DATA_REFRESH
group by ID,Name
having count(ID) >1 -- restricts this so only those with more than one entry appear
答案 1 :(得分:1)
嗨,你可以在没有子句的情况下进行简单的查询,
select ID,Name,COUNT(*)
from DATA_REFRESH
group by ID,Name order by COUNT(*) desc ;
答案 2 :(得分:-1)
只需尝试这样,
underscoreJS