#sql #db2
#sql #db2
Вопрос:
Я пытаюсь изучить SQL и в настоящее время изучаю функцию COUNT. Я хочу протестировать извлечение данных из нескольких таблиц и хочу вернуть результирующий набор, например:
| tablename | row_count |
| Computers | 2000 |
| Buildings | 37 |
До сих пор я не нашел способа извлечь информацию и создать такое представление.
Ответ №1:
Используйте объединение и количество (*) с (постоянной) меткой:
select 'Computers' as tablename, count(*) as row_count from Computers
union all
select 'Buildings' as tablename, count(*) as row_count from Buildings
Обратите внимание, что использование union all
(вместо просто union
) означает, что возвращаемые строки останутся в том порядке, в котором они выбраны в запросе.
Комментарии:
1. 1 но чтобы сделать его равным запросу OP, вы должны были указать псевдонимы для столбцов 🙂
2. Вы имели в виду
from Computers
иfrom Buildings
, верно? Это имена таблиц3. @Icarus Технически название таблиц не было задано OP. То, что он дал, было ярлыками. Старая школьная БД могла бы назвать их
tblComputers
иtblBuildings
4. @xanatos насколько я понял, вопрос заключается в том, что OP хочет знать, сколько записей имеется в табличных компьютерах и в табличных зданиях. Вот почему я сделал свой комментарий. Итак, я ожидал
select 'Computers' as tablename, count(*) from Computers UNION ALL select 'Buildings' as tablename, count(*) from Buildings
5. @Icarus Имейте в виду, что (из того, что я знаю) DB2 имеет странный синтаксис для псевдонимов столбцов.
'Computers' "tablename", count(*) "row_count"