我试图加入一个表并获得一个计数,但是我不能在表中为该计数两次计算ID。
表1:
ID animal
-- ------
1 dog
2 dog
3 cat
4 cat
5 dog
表2:
ID
--
2
2
3
5
5
我需要计算表2中每种动物的数量。我可以将其加入并将ID更改为动物类型,然后对每种动物进行计数。
问题是每个ID只能计数一次。所以预期的输出将是。
dog:2
cat:1
我的输出是
dog:4
cat:1
答案 0 :(得分:1)
尝试如下
CustomAppender appender = new CustomAppender() {
@Override
protected void sendBuffer() {
//my counter here
super.sendBuffer();
}
};
答案 1 :(得分:0)
您可以使用count distinct id
select b.animal,count(distinct a.id) from table2 a
inner join table1 b on a.id=b.id
group by b.animal
答案 2 :(得分:0)
尝试一下:
SELECT t1.animal AS "Animal", COUNT(DISTINCT t1.ID) AS "No. of Animals"
FROM TABLE2 t2, TABLE1 t1
WHERE t2.ID = t1.ID
GROUP BY t1.animal
答案 3 :(得分:0)
您可以在此处尝试嵌套选择。
SELECT
t.animal,
COUNT(t.ID) AS Count
FROM
(SELECT DISTINCT a.animal, b.ID FROM table1 a INNER JOIN table2 b ON a.ID = b.ID)t
GROUP BY t.animal