我试图在一周的时间内随机抽样随机条目。为了确保平日和周末条目的平衡,我草拟了 2 个单独的 sql 语句,如下所示:
select * FROM admin.acct_activity
where RANDOM() <=1
--weekday
and extract(day from page_hit_ts) Between 6 and 10
limit 500
UNION all
SELECT *
FROM admin.acct_activity
where RANDOM() <=1
--weekend
and extract(day from page_hit_ts) Between 11 and 12
limit 200
/* to-do
1. limit results for each query
2. order query results by date*/
Run Code Online (Sandbox Code Playgroud)
错误信息是:
"all" (at char 121) expecting a keyword (State:42000, Native Code: 1B)
Run Code Online (Sandbox Code Playgroud)
这是在 Netezza SQL (NZSQL)
第一个 select 语句中的 limit 语句似乎导致了错误。有小费吗?
我认为你可以用括号来做到这一点:
(select *
FROM admin.acct_activity
where RANDOM() <=1 and extract(day from page_hit_ts) Between 6 and 10
limit 500
)
UNION all
(SELECT *
FROM admin.acct_activity
where RANDOM() <=1 and extract(day from page_hit_ts) Between 11 and 12
limit 200
)
Run Code Online (Sandbox Code Playgroud)
如果没有,您绝对可以使用子查询来完成:
select t.*
from ((select *
FROM admin.acct_activity
where RANDOM() <=1 and extract(day from page_hit_ts) Between 6 and 10
limit 500
)
UNION all
(SELECT *
FROM admin.acct_activity
where RANDOM() <=1 and extract(day from page_hit_ts) Between 11 and 12
limit 200
)
) t
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2685 次 |
| 最近记录: |