我有一个方便地称为 的大表mytable
,有三列:id
、cat_group
、cat_other
。我想cat_group
使用 SQL 从每个元素中选择一个随机元素。我该怎么做?
示例数据
| id | cat_group | cat_other |
+----+-----------+-----------+
| 1 | red | fred |
| 2 | blue | sarah |
| 3 | blue | peter |
| 4 | green | spot |
| 5 | red | peter |
可接受的结果
| cat_group | id | cat_other |
+-----------+----+-----------+
| red | 5 | peter |
| blue | 2 | sarah |
| green | 4 | spot |
也很好
| cat_group | id | cat_other |
+-----------+----+-----------+
| red | 1 | fred |
| blue | 3 | peter |
| green | 4 | spot |
我在 SO 上看到了一些类似的问题,但是我迷失了实现细节。我正在使用 postgresql,但答案应该能够在不同的数据库中推广。
Sqlfiddle 在http://sqlfiddle.com/#!1/b42c8/2