如何将多个 Select 语句放入不同的列中

Rus*_*rry 1 sql multiple-columns vertica

我基本上有 7 个 select 语句,我需要将结果输出到单独的列中。通常我会使用交叉表来完成此操作,但我需要一种快速有效的方法来完成此操作,因为表中有超过 70 亿行。我正在使用vertica数据库系统。以下是我的陈述的示例:

SELECT COUNT(user_id) AS '20100101' FROM event_log_facts WHERE date_dim_id=20100101
SELECT COUNT(user_id) AS '20100102' FROM event_log_facts WHERE date_dim_id=20100102
SELECT COUNT(user_id) AS '20100103' FROM event_log_facts WHERE date_dim_id=20100103
SELECT COUNT(user_id) AS '20100104' FROM event_log_facts WHERE date_dim_id=20100104
SELECT COUNT(user_id) AS '20100105' FROM event_log_facts WHERE date_dim_id=20100105
SELECT COUNT(user_id) AS '20100106' FROM event_log_facts WHERE date_dim_id=20100106
SELECT COUNT(user_id) AS '20100107' FROM event_log_facts WHERE date_dim_id=20100107
Run Code Online (Sandbox Code Playgroud)

应该返回类似:

20100101 | 20100102 | 20100103 | 20100104 | 20100105 | 20100106 | 20100107
1234     | 1234     | 36564    | 45465    | 356754   | 3455     | 4556675
Run Code Online (Sandbox Code Playgroud)

Gab*_*oli 5

将它们括在括号中,添加逗号并选择它们:)

SELECT
(SELECT COUNT(user_id) FROM event_log_facts WHERE date_dim_id=20100101) AS '20100101',
(SELECT COUNT(user_id) FROM event_log_facts WHERE date_dim_id=20100102) AS '20100102',
(SELECT COUNT(user_id) FROM event_log_facts WHERE date_dim_id=20100103) AS '20100103',
(SELECT COUNT(user_id) FROM event_log_facts WHERE date_dim_id=20100104) AS '20100104',
(SELECT COUNT(user_id) FROM event_log_facts WHERE date_dim_id=20100105) AS '20100105',
(SELECT COUNT(user_id) FROM event_log_facts WHERE date_dim_id=20100106) AS '20100106',
(SELECT COUNT(user_id) FROM event_log_facts WHERE date_dim_id=20100107) AS '20100107'
Run Code Online (Sandbox Code Playgroud)

或者您可以创建一个标量函数,该函数将 date_dim_id 作为参数并返回您想要的结果,然后多次调用它..(如果您的数据库系统支持标量函数