【发布时间】:2021-09-27 22:22:08
【问题描述】:
我正在尝试“过滤”表格locationrelation 中的一些重复项。该表如下所示:
+-----+---------+--------+----------------+--------------+
| id | version | typeId | fromLocationId | toLocationId |
+-----+---------+--------+----------------+--------------+
| 1 | 0 | 1 | 77 | 76 |
| 2 | 0 | 1 | 78 | 76 |
| 3 | 0 | 1 | 79 | 76 |
| 4 | 0 | 1 | 80 | 76 |
| 5 | 0 | 1 | 2 | 240 |
| 6 | 0 | 1 | 3 | 240 |
| 7 | 0 | 1 | 4 | 240 |
| 8 | 0 | 1 | 5 | 240 |
| 9 | 0 | 1 | 6 | 240 |
| 10 | 0 | 1 | 7 | 240 |
----------------------------------------------------------
| 492 | 0 | 1 | 6 | 10000 |
我试图只选择等于 240 并且只出现一次的 toLocationId。问题是我在此表中有一些重复项,如您在最后一行中所见。 (fromLocationId = 6 出现两次,第一次出现toLocationId=240,第二次出现toLocationId=1000)。
我尝试了以下查询:
select fromLocationId, toLocationId
from locationrelation
GROUP BY fromLocationId
HAVING COUNT(toLocationId) = 1;
,但现在的问题是它显示的 toLocationId 的值不是 240。(见最后一行)
例子:
+----------------+--------------+
| fromLocationId | toLocationId |
+----------------+--------------+
| 1 | 240 |
| 9 | 240 |
| 11 | 240 |
| 33 | 240 |
| 38 | 240 |
| 42 | 240 |
| 51 | 240 |
| 63 | 240 |
| 67 | 240 |
| 72 | 240 |
| 85 | 240 |
| 97 | 240 |
| 98 | 240 |
| 107 | 240 |
| 121 | 240 |
| 146 | 240 |
| 186 | 240 |
| 196 | 240 |
| 198 | 240 |
| 212 | 240 |
| 228 | 240 |
| 244 | 240 |
| 245 | 240 |
| 251 | 240 |
| 253 | 240 |
| 254 | 240 |
| 257 | 240 |
| 258 | 240 |
| 10000 | 240 |
| 10002 | 240 |
| 10003 | 240 |
| 10008 | 240 |
| 10015 | 67 |
+----------------+--------------+
【问题讨论】:
标签: mysql sql filter count duplicates