Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / (MySQL) подсчет нескольких значений с условием / 8 сообщений из 8, страница 1 из 1
02.03.2016, 08:28
    #39183216
однобитный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(MySQL) подсчет нескольких значений с условием
Здрасте!

Есть таблица:
clicks
id_click
flag_pay
date_click

Нужно подсчитать количество кликов с flag_pay = 0 и с flag_pay = 1, с группировкой по дате. Как лучше всего вместо двух запросов сделать это в одном?

Код: sql
1.
2.
SELECT COUNT(id_click) as cnt FROM clicks WHERE flag_pay = 0 GROUP BY(date_click)
SELECT COUNT(id_click) as cnt FROM clicks WHERE flag_pay = 1 GROUP BY(date_click)
...
Рейтинг: 0 / 0
02.03.2016, 08:37
    #39183222
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(MySQL) подсчет нескольких значений с условием
...
Рейтинг: 0 / 0
02.03.2016, 09:20
    #39183255
однобитный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(MySQL) подсчет нескольких значений с условием
SELECT COUNT(case when flag_pay = 0 then id_click else 0 end) as cnt_free, COUNT(case when flag_pay = 1 then id_click else 0 end) as cnt_pay FROM clicks WHERE flag_pay = 0 GROUP BY(date_click)

чета все равно все подряд считает...
...
Рейтинг: 0 / 0
02.03.2016, 09:23
    #39183260
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(MySQL) подсчет нескольких значений с условием
Вместо жестокого и бессмысленного
Код: sql
1.
COUNT(case when flag_pay = 0 then id_click else 0 end) 

надо использовать простенькое
Код: sql
1.
SUM(flag_pay = 0)
...
Рейтинг: 0 / 0
02.03.2016, 09:27
    #39183265
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(MySQL) подсчет нескольких значений с условием
))) матом здесь ругаться нельзя.....
))) на бумажке алгоритм нарисуйте и строго по квадратикам
Код: sql
1.
2.
3.
4.
SELECT 
SUM(case when flag_pay = 0 then 1 else 0 end) as cnt_free, 
SUM(case when flag_pay = 1 then 1 else 0 end) as cnt_pay 
FROM clicks WHERE flag_pay = 0 /* это зачем  ?????*/ GROUP BY(date_click)
...
Рейтинг: 0 / 0
02.03.2016, 09:30
    #39183267
однобитный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(MySQL) подсчет нескольких значений с условием
опечатка, спасибо!!! :)
...
Рейтинг: 0 / 0
03.03.2016, 00:55
    #39184377
itz3ima
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(MySQL) подсчет нескольких значений с условием
здравствуйте, а если условий больше 2-х. например есть таблица
zak
id tov_id zak total
1 1 10 1.10
2 2 10 2.20
3 2 20 3.30
4 3 20 4.40
5 4 21 5.50
6 1 21 6.60
можно одним запросом получить сумму столбца total по признаку zak
чтобы было
itog
zak full_total
10 3.30
20 7.70
31 12.10
я пробовал как-то так:
Код: sql
1.
2.
3.
4.
5.
6.
SELECT *, 
  (SELECT SUM(total) 
   FROM zak b 
   WHERE zak = b.zak) full_total 
FROM zak 
ORDER BY id;


но в итоге он щитает всю сумму столбца
...
Рейтинг: 0 / 0
03.03.2016, 09:42
    #39184483
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(MySQL) подсчет нескольких значений с условием
В подзапросе поле без алиаса будет взято из таблицы-источника этого подзапроса.
Алиасы должны быть у ВСЕХ таблиц и полей.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / (MySQL) подсчет нескольких значений с условием / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]