1
如下表内:的Sql多选择一个行子组从同一个表
id | group_s | name
_____________________
1 | 1 | pollo
2 | 1 | cordero
3 | 1 | cerdo
4 | 2 | tomates
5 | 2 | naranjas
6 | 2 | manzanas
我想随机地选择从每一个组中的一个线。可能的输出的实施例 (因为它是随机的):
id | group_s | name
_____________________
3 | 1 | cerdo
5 | 2 | naranjas
或
id | group_s | name
_____________________
1 | 1 | pollo
6 | 2 | manzanas
等..
我没有线索如何做到这一点。我想我应该多选表格。 我曾尝试没有成功如下:
SELECT T2.* FROM (
SELECT group_s
FROM mytable
GROUP BY group_s ORDER BY RAND() LIMIT 1) AS T1
JOIN mytable AS T2
ON T1.group_s = T2.group_s;
感谢您的帮助。我试图让你的语句在我的服务器下工作,但它不(我是在创建相应的表后复制粘贴语句)。它显示了一个错误1064-错误的sql语法。并且我在SQL Fiddle Demo下正在运行。这可能是一个MySQL版本的问题? –
@ user903645 - 我很抱歉,我认为它是SQL Server,对于MySQL我尝试了它,但是我可以,我做到了,但是每次对于'Id'的最小值不是随机的,请参阅[this sql fiddle demo ](http://www.sqlfiddle.com/#!2/be046/16)。我用MySQL标签重申了你的问题,并等待另一个答案。你也可以不接受这个答案,因为它不是正确的答案。你也可以谷歌***分区通过*** *** mysql row_number,你会发现很多文章解释如何做到这一点。 –