Много COUNT по одному полю в одном запросе

Max_kmv

Новичок
Много COUNT по одному полю в одном запросе

Здравствуйте! У меня есть весьма тривиальная задача - посчитать количество строк для каждого уникального значения, например из следующей таблицы `test`
PHP:
+----+--------+
| id | field1 |
+----+--------+
|  1 | var1   |
|  2 | var1   |
|  3 | var2   |
|  4 | var2   |
|  5 | var2   |
|  6 | var2   |
+----+--------+
Запрос полностью решает эту задачу, но выводит результат в несколько строк
PHP:
SELECT COUNT(`id`) as `total_values`, `field1`
FROM `test` GROUP BY `field1`

+--------------+--------+
| total_values | field1 |
+--------------+--------+
|            2 | var1   |
|            4 | var2   |
+--------------+--------+
А я пытаюсь придумать что бы вывело в одной строке.
Подозреваю, тут можно что-то намутить с какимито-то конструкциями типа
PHP:
SELECT COUNT(`t1`.`field1`) as `by_var1`, COUNT(`t2`.`field1`) as `by_var2`.... 
FROM `test` as `t1`, `test` as `t2`....
Но вот что дальше... Может кто-то знает что тут можно сделать?
 

ForJest

- свежая кровь
Код:
SELECT SUM(IF(field1 = 'var1', 1, 0)) AS by_var1, SUM(IF(field1 = 'var2', 1, 0)) AS by_var2,  ...
FROM test;
Но для этого тебе нужно знать список значений field1.
 

Max_kmv

Новичок
о, как раз возможные значения известны! спасибо! щас тока надо будет разобраться с IF-ами :)
 
Сверху