Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запрос к одной таблице получение count / 5 сообщений из 5, страница 1 из 1
19.10.2014, 15:47:54
    #38781067
AlexSes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос к одной таблице получение count
Добрый день всем!
имеется таблица jurnal
поля: datav(date), badblank(tinyint)
Как получить (если это возможно) в одном запросе количество записей по разным условиям и группировкой по полю dadav
Хотелось бы получить, к примеру, следующее:
Код: plaintext
1.
2.
3.
4.
5.
-----------------------------------
m  |cnt1 |cnt2
-----------------------------------
9  | 2   |1
10 | 5   |0
Отдельные запросы выглядят так:
Код: sql
1.
2.
SELECT MONTN(datav) as m, COUNT(`id`) as cnt1 FROM `jurnal` WHERE YEAR(`datav`)=2014 GROUP BY m
SELECT MONTN(datav) as m, COUNT(`id`) as cnt2 FROM `jurnal` WHERE YEAR(`datav`)=2014 AND badblank=1 GROUP BY m


Запрос с UNION даст вертикальную таблицу..
Помогите, пожалуйста.
...
Рейтинг: 0 / 0
19.10.2014, 17:57:51
    #38781133
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос к одной таблице получение count
AlexSes,

примерно так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT 
  MONTN(datav) as m, 
  COUNT(`id`) as cnt ,
  SUM(badblank=1) as cnt2 
FROM `jurnal` 
WHERE datav >= '2014-01-01'
   AND  datav < '2015-01-01'
GROUP BY m
...
Рейтинг: 0 / 0
19.10.2014, 18:33:27
    #38781153
AlexSes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос к одной таблице получение count
javajdbc , спасибо большое! Как я сам не догадался - SUM(badblank)
я там опечатался, MONTH, конечно, а не MONTN.
Вопросик, почему диапазон дат, а не YEAR(datav)?
...
Рейтинг: 0 / 0
19.10.2014, 20:02:31
    #38781223
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос к одной таблице получение count
AlexSes javajdbc , спасибо большое! Как я сам не догадался - SUM(badblank)
я там опечатался, MONTH, конечно, а не MONTN.
Вопросик, почему диапазон дат, а не YEAR(datav)?

Если badblank только 1,0, то SUM(badblank) будет ОК.

Диапазон может дать шанс индексу по datav
ускорить выборку. YEAR(datav) такого шанса
не дает -- всегда будет ФУЛ СКАН -- полный перебор.
...
Рейтинг: 0 / 0
20.10.2014, 03:11:02
    #38781366
AlexSes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос к одной таблице получение count
javajdbc, искренне благодарю!
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запрос к одной таблице получение count / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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