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)
将它们括在括号中,添加逗号并选择它们:)
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 作为参数并返回您想要的结果,然后多次调用它..(如果您的数据库系统支持标量函数)
| 归档时间: |
|
| 查看次数: |
5676 次 |
| 最近记录: |