我需要编写一个过滤数据的查询。 在我的表中,我将所有数据按val1分组,但我必须删除val2的多个值。
我的表是这样的:
| id | val1 | val2 | other |
|------------------|-------
| 1 | A1 | b1 | ...
| 2 | A1 | b1 | ...
| 3 | A1 | b2 |
| 4 | A2 | b1 |
| 5 | A3 | b1 |
| 6 | A3 | b1 |
| 7 | A3 | b2 |
| 8 | A4 | b1 |
| 9 | A4 | b3 |
| 10 | A5 | b1 |
我需要这个:
| id | val1 | val2 |
|------------------|
| 1 | A1 | b1 |
| 3 | A1 | b2 |
| 4 | A2 | b1 |
| 5 | A3 | b1 |
| 7 | A3 | b2 |
| 8 ...
| 9 ...
| 10 ...
它是来自val1的表组中的一种select *,distinct(val2)。
答案 0 :(得分:2)
您使用GROUP BY
以下内容应根据您的问题返回结果
SELECT MIN(id) AS id, val1, val2
FROM YourTable
GROUP BY
val1, val2
<强>击穿强>
MIN
列上的id
聚合函数。这将返回每个组的最低ID GROUP BY
您希望获得不同值