是否有可能获得分组的随机值?

----------------
 nID |  val
---------------
  A  |   XXX
  A  |   YYY
  B  |   L
  B  |   M
  B  |   N
  B  |   P
----------------

使用此SQL:
SELECT nID, VAL FROM T1 GROUP BY nID

我的结果始终是:
nID  val
--------
A    XXX
B    L

但是我想要不同的结果evey nID。喜欢:
nID  val
--------
A    YYY
B    N

或者
nID  val
--------
A    XXX
B    P

这是可能的?

http://sqlfiddle.com/#!2/357b8/3

最佳答案

使用子查询。

SELECT r.nID,
(SELECT r1.val FROM T1 r1 WHERE r.nID=r1.nID ORDER BY rand() LIMIT 1) AS 'val' FROM T1 r
GROUP BY r.nID

http://sqlfiddle.com/#!2/357b8/18

关于mysql - 按值分组RAND(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12725363/

10-12 19:10