2016-01-08 7 views
-1

МойПолучение подсчета результата по отношению к колонке

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

Запрос дает результат в виде;

coupon

Как я могу получить подсчет результатов по отношению к их поле «Купон».

Ожидаемый результат;

32, 3 
33, 2 

спасибо.

+0

Вы действительно используете как MySQL и MS SQL Server здесь? Не помещайте продукты, которые не задействованы ... – jarlh

ответ

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 
+0

К сожалению, это вернуло нулевой результат. – Ece

+0

В какой таблице вы столбец 'kupon'? –

+0

kuponbahis column – Ece

1

Вам нужно использовать группу по:

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?

+0

# 1052 - Столбец 'id' в списке полей неоднозначен – Ece

+0

Я исправляю свой ответ. Отметьте это – Evgeny

+0

, почему group by 1. он вернет только одну строку со счетом всех строк. –

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 
+0

Да, только то, что мне нужно. – Ece