我有两个表,“国家”和“汇总”:
+------+---------+
| code | country |
+------+---------+
| 01 | France |
| 02 | Germany |
| 02 | Austria |
| 03 | Belgium |
| 04 | Belgium |
| 04 | Spain |
| 05 | Italy |
+------+---------+
+------+-----+
| code | sum |
+------+-----+
| 01 | 500 |
| 02 | 400 |
| 03 | 300 |
| 04 | 200 |
+------+-----+
我想创建一个表code-sum-country。这当然很容易,但是我需要与表Sums中的行数完全相同。
+------+-----+---------+
| code | sum | country |
+------+-----+---------+
| 01 | 500 | France |
| 02 | 400 | Austria |
| 02 | 400 | Germany |
| 03 | 300 | Belgium |
| 04 | 200 | Spain |
| 04 | 200 | Belgium |
+------+-----+---------+
我要在上表中具有唯一的代码值。因此,我需要删除其中的一些,无论哪一个都没有关系。我的目标是只有一行具有相同的代码。例如行
| 04 | 200 | Spain |
可以保留或删除。我怎样才能做到这一点?
尝试这个:
DELETE
FROM code_sum_country
WHERE code in
(SELECT code
FROM code_sum_country
GROUP BY code
HAVING COUNT (code) > 1)
AND country NOT IN
(SELECT MIN(country)
FROM code_sum_country
GROUP BY code
HAVING COUNT (code) > 1)
这将保留名称按字母顺序最小的国家。
如果要保留最大数量,请更改MIN(country)
为MAX(country)
。
希望能帮助到你 :)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句