Compte tenu des données qui ressemble à ceci:Comment rechercher des enregistrements avec plusieurs valeurs pour la dernière colonne d'une clause GROUP BY composée?
+---------+-----------+----------+
| country | city | district |
+---------+-----------+----------+
| Japan | Tokyo | 1 |
| Japan | Tokyo | 1 |
| Japan | Tokyo | 2 |
| China | Shanghai | A |
| China | Shanghai | A |
| China | Shanghai | A |
| China | Beijing | X |
| China | Beijing | Y |
| China | Beijing | Z |
| India | Mumbai | 123 |
| India | Mumbai | 123 |
| India | Mumbai | 123 |
| India | New Delhi | 321 |
| India | New Delhi | 321 |
| India | New Delhi | 321 |
+---------+-----------+----------+
Je sais que je peux obtenir les données visuellement par faire d'abord:
SELECT * from that_table
GROUP BY country, city, district
Je me suis arrangé:
+---------+-----------+----------+
| country | city | district |
+---------+-----------+----------+
| Japan | Tokyo | 1 |
| Japan | Tokyo | 2 |
| China | Shanghai | A |
| China | Beijing | X |
| China | Beijing | Y |
| China | Beijing | Z |
| India | Mumbai | 123 |
| India | New Delhi | 321 |
+---------+-----------+----------+
où Je peux voir que seuls le Japon/Tokyo et la Chine/Beijing ont plusieurs valeurs pour District. Cependant, j'ai une énorme source de données et j'aimerais le faire en SQL. Comment puis-je former la requête SQL pour obtenir toutes les combinaisons pays/ville avec plusieurs districts?
La sortie Je voudrais obtenir est:
+---------+-----------+----------+
| country | city | district |
+---------+-----------+----------+
| Japan | Tokyo | 1 |
| Japan | Tokyo | 2 |
| China | Beijing | X |
| China | Beijing | Y |
| China | Beijing | Z |
+---------+-----------+----------+
Pourquoi les données sources contiennent-elles autant d'enregistrements en double? Dire quelque chose trois fois (comme) ne le rend pas plus vrai. –
Dans votre cas, sélectionnez * est très mauvais, surtout avec un groupe de. J'utilise rarement select *, je ne l'utilise que pour interroger des tables pour des informations, jamais en code réel. – Martin
Je n'ai aucun contrôle sur les données source. Les données proviennent de la base de données d'une ancienne application à laquelle je n'ai accès qu'en lecture seule. –