SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 28.08.2014 12:48:32

roni
Участник
Зарегистрирован: 27.08.2014
Сообщений: 5

Как подсчитать несколько значений в одном запросе?

Есть таблица T с полем tag, которое может принимать значения 0 и 1
Как в одном запросе подсчитать количество записей с tag=0, tag=1 и всего?

Неактивен

 

#2 28.08.2014 13:22:16

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Как подсчитать несколько значений в одном запросе?

1. через union

2. sum(if(tag=0,1,0)), ..

Неактивен

 

#3 28.08.2014 13:45:08

roni
Участник
Зарегистрирован: 27.08.2014
Сообщений: 5

Re: Как подсчитать несколько значений в одном запросе?

А через пользовательские переменные не получится
Объединять три запроса к одной таблице как-то некрасиво.

Отредактированно roni (28.08.2014 13:46:41)

Неактивен

 

#4 28.08.2014 15:19:37

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Как подсчитать несколько значений в одном запросе?

можно, но это ничем не будет отличаться от второго варианта (только усложнит его).

Неактивен

 

#5 28.08.2014 17:35:46

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Как подсчитать несколько значений в одном запросе?

Можно еще через group by smile

SELECT count(*) FROM `T` WHERE `tab` IN (0,1) GROUP BY `tag`;


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#6 28.08.2014 21:04:35

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 849

Re: Как подсчитать несколько значений в одном запросе?

Как в одном запросе подсчитать количество записей с tag=0, tag=1 и всего?

SELECT
  SUM(tag = 0) AS tag_0,
  SUM(tag = 1) AS tag_1,
  COUNT(*) AS total
FROM T

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson