将结果数量计入一列

时间:2016-01-08 06:49:50

标签: mysql sql sql-server

select distinct c.*
from kuponbahis c
join bahis b on b.sonuc = c.secim and b.ID=c.bahis AND c.durum=0

查询将结果显示为;

coupon

如何才能将结果数量计算在他们的" kupon"字段。

预期结果;

32, 3
33, 2

谢谢。

3 个答案:

答案 0 :(得分:1)

kupon分组数据并使用计数功能获取特定kupon的数量

select c.kupon,count(*) as count
from kuponbahis c
join bahis b on b.sonuc = c.secim and b.ID=c.bahis AND c.durum=0
group by c.kupon

答案 1 :(得分:1)

您需要使用group by:

select kupon, count(c.id)
from kuponbahis c
join bahis b on b.sonuc = c.secim and b.ID=c.bahis AND c.durum=0
group by 1

此外,您的原始查询看起来很奇怪。您使用JOIN(意思是INNER JOIN)并且不从连接表中选择任何字段。在这种情况下,如果第二个表没有要连接的记录,则可以得到零结果。也许您应该删除JOIN声明?

答案 2 :(得分:1)

如果我理解您的要求正确,您希望计算bahis的数量,但只包含bahis = 24的行数。如果是,您可以使用COUNT并过滤HAVING子句

中的结果
select c.kupon, count(*) as count
from kuponbahis c
join bahis b 
    on b.sonuc = c.secim 
    and b.ID = c.bahis 
where
    c.durum = 0
group by c.kupon
having count(case when c.bahis = 24 then 1 end) > 0