我有一个包含两列的表,比如column1和column2。 Column2不是唯一的。 对于column2的每个不同值,我想要一个随机行,只有一行,来自表?
即。我的结果集应该具有与column2的不同值的数量一样多的行。
例如:
column1 column2
x 1
y 2
z 1
我希望结果是
column1 column2
x 1
y 2
或
column1 column2
z 1
y 2
这只能使用SQL吗?
答案 0 :(得分:1)
SELECT MAX(column1), column2 FROM yourtablename GROUP BY column2
答案 1 :(得分:1)
此查询应该在MySQL上进行操作(在MySQL 5上测试):
select a.column1, a.column2 from (select * from foo b order by rand()) a group by a.column2;
答案 2 :(得分:0)
您可能需要尝试ROW_NUMBER() OVER(ORDER BY column1 asc)
之类的内容来撤回行号并按此方式过滤。
你没有提到你使用的SQL的味道,我从内存中回忆起这一点 - 但是这种事情在Oracle 9中有效。