SQL-запрос для подсчета значений в столбце набора - PullRequest
0 голосов
/ 11 июля 2011

Я не знаю, возможно ли это с помощью одного запроса, но здесь идет речь:

У меня есть столбец с заданным типом данных. Я хочу выбрать количество каждого возможного значения набора. Итак, у меня есть:

строка 1 устанавливает значение столбца: «opt 1», «opt 2»

строка 2 устанавливает значение столбца: «opt 1», «opt 3»

строка 3 устанавливает значение столбца: «opt 3», «opt 4», «opt 2»

Мне нужен запрос, который выдаст структуру, аналогичную (не обязательно должна быть именно эта, просто счетчик для каждого возможного значения набора):

Array(
    [0] => Array(
        'value'=>'opt 1',
        'count'=> 2
    ),
    [1] => Array(
        'value'=>'opt 2',
        'count' => 2
    ),
    [2] => Array(
        'value'=>'opt 3',
        'count' => 2
    ),
    [3] => Array(
        'value'=>'opt 4',
        'count' => 1
    )
)

Ответы [ 2 ]

2 голосов
/ 11 июля 2011

, поскольку ваш столбец SET является растровым изображением, вы можете настроить запрос следующим образом:

SELECT count(NULLIF(columnName & 1,0)) as Count1stVal,
       count(NULLIF(columnName & 2,0)) as Count2ndVal,
       count(NULLIF(columnName & 4,0)) as Count3rdVal,
       count(NULLIF(columnName & 8,0)) as Count4thVal, 

...

0 голосов
/ 11 июля 2011

Может быть, я не совсем понимаю вопрос, но если вы предлагаете таблицу со столбцом, который имеет значения, и вы хотите, чтобы ваш запрос выводил два столбца, один из которых является значением, а второй - числом Вхождения в таблице для этого значения вы должны сделать:

    SELECT column, count(column)
    FROM table
    GROUP BY column
    ORDER BY column;
...