SQL подсчитывает общее количество строк? - PullRequest
0 голосов
/ 11 января 2011

мне нужен сложный запрос:

Рассмотрим эту таблицу:

ID - field1 - field2
 =================
 1     a        10
 2     a        10
 3     a        20
 4     b        20

Мне нужен запрос, который подсчитывает общее количество записей, сгруппированных по field1 и field2. Я имею в виду, мне нужен этот результат:

field      - count
==================
field1 a   - 3
field1 b   - 1
field2 10  - 2
field2 20  - 2

Может быть, мне нужно сделать 2 запроса для каждого поля, мне нужно количество?

 SELECT field1, COUNT( * ) FROM t1 GROUP BY field1

Спасибо за любые предложения

1 Ответ

2 голосов
/ 11 января 2011

Вам нужны два SELECT, но вы можете получить их, чтобы они возвращали один набор результатов следующим образом. Обратите внимание, что вам нужно CAST первый SELECT, чтобы значения были совместимы с текстовым полем во втором SELECT:

 SELECT 'field1' AS FieldName, CAST(field1 AS CHAR) AS FieldValue, COUNT(*) AS Count 
   FROM table GROUP BY field1
 UNION ALL 
 SELECT 'field2' AS FieldName, field2 AS FieldValue, COUNT(*) AS Count 
   FROM table GROUP BY field2
...