分组值RAND()

EnZ*_*nZo 11 mysql sql group-by

有可能获得该组的随机值吗?

----------------
 nID |  val
---------------
  A  |   XXX
  A  |   YYY
  B  |   L
  B  |   M
  B  |   N
  B  |   P
----------------
Run Code Online (Sandbox Code Playgroud)

有了这个SQL:

SELECT nID, VAL FROM T1 GROUP BY nID
Run Code Online (Sandbox Code Playgroud)

我的结果总是:

nID  val
--------
A    XXX
B    L
Run Code Online (Sandbox Code Playgroud)

但我想要一个不同的evey nID结果.喜欢:

nID  val
--------
A    YYY
B    N
Run Code Online (Sandbox Code Playgroud)

要么

nID  val
--------
A    XXX
B    P
Run Code Online (Sandbox Code Playgroud)

这是可能的?

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

noj*_*noj 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
Run Code Online (Sandbox Code Playgroud)

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