现在我有:
SELECT id, name FROM table1
DISTRIBUTE BY rand()
SORT BY rand()
limit 2;
但是我需要添加一个限定语句,以便随机检索的一半行满足指定的条件:
WHERE count(id) > 3
GROUP BY name;
而另一半的行不满足这个条件。但是,我不能比另一个更多地表示一个子集,即那些具有计数(id)&gt;的子集。 3应与<3的量相同。我想过使用一个联盟,但认为这是不可能的,因为查询将查询同一个表。我该怎么做呢?提前谢谢!
答案 0 :(得分:0)
尝试这样的事情:
select
*
from(
select
Src_sys_id
From fin.table
where src_sys_id = "123"
limit 10
union all
select src_sys_id
From fin.table
where src_sys_id <> "123"
limit 10) a;
如果您愿意,可以在select语句中添加任何其他子句。只需确保每个select语句返回相同的列数,以便联合工作。