Select * from table

SQL во всех проявлениях - от ANSI-92 до TSQL.

Модераторы: Yurich, Absurd

Ответить
Maxim
Сообщения: 1
Зарегистрирован: 19 мар 2004, 20:39
Контактная информация:

22 мар 2004, 10:02

Поскажыте пожалуста как правильнее сделать запрос, есть таблица 6 столбцов и 453 строк. В каждой ячейки храница номер. Надо вывисти сколько раз встречаеться каждый номер.Номера от 1 до 45.
Я сделал запрос но он обращяеться 270 раз к таблице.
chur
Сообщения: 195
Зарегистрирован: 17 фев 2004, 10:44
Откуда: Riga, Latvia

22 мар 2004, 12:15

Пример для трёх колонок (num1, num2, num3):

Код: Выделить всё

select k.nm, t1.cc as sum1, t2.cc as sum2, t3.cc as sum3 from (((select num1 as nm from test union (select num2 as nm from test union select num3 as nm from test)) as k left join (select num1 as nm, count(num1) as cc from test group by num1) as t1 on k.nm=t1.nm) left join (select num2 as nm, count(num2) as cc from test group by num2) as t2 on k.nm=t2.nm) left join (select num3 as nm, count(num3) as cc from test group by num3) as t3 on k.nm=t3.nm order by k.nm;
Аватара пользователя
Naeel Maqsudov
Сообщения: 2551
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

22 мар 2004, 19:53

select n, count(*)
from (select pole1 n from table union select pole2 n from table... union pole6 n from table)
group by n

Правда такая инструкция редко где прокатит, тогда можно создать промежуточную таблицу, и выполнить вышеуказанное уже над ней.

В Access можно создать запрос на объединение, а потом сделать по нему запрос с группировкой.
Ответить