Rechercher les utilisateurs qui visitent une seule ville au lieu de plusieurs villes dans MySQL [duplicata]
P粉764785924
2023-07-24 22:47:07
<p>J'ai un tableau avec l'identifiant de l'utilisateur, la ville et la date de réservation. J'ai besoin de connaître les utilisateurs qui ont visité une seule ville et non plusieurs villes au cours d'une plage de dates. </p>
<pre class="brush:php;toolbar:false;">SELECT
ID de l'utilisateur,
ville,
COUNT(*) comme résultat
DE visites
OÙ start_ts >= 1675209600 -- 1675209600 = 01.02.2023 00:00
ET end_ts <= 1676419200 -- 1676419200 = 15.2.2023 00:00
GROUP BY user_id, city</pre>
<table class="s-table">
<tête>
<tr>
<th>user_id</th>
<th>ville</th>
<th>résultat</th>
≪/tr>
≪/tête>
<corps>
<tr>
<td>10</td>
<td>Munich</td>
<td>1</td>
≪/tr>
<tr>
<td>11</td>
<td>Barcelone</td>
<td>2</td>
≪/tr>
<tr>
<td>11</td>
<td>Berlin</td>
<td>1</td>
≪/tr>
<tr>
<td>12</td>
<td>Barcelone</td>
<td>1</td>
≪/tr>
<tr>
<td>13</td>
<td>Prague</td>
<td>2</td>
≪/tr>
<tr>
<td>11</td>
<td>Barcelone</td>
<td>1</td>
≪/tr>
<tr>
<td>13</td>
<td>Berlin</td>
<td>1</td>
≪/tr>
</tcorps>
</tableau>
<p>Les ID utilisateur 10 et 12 n'ont visité qu'une seule ville. Par exemple, l'ID utilisateur 11 s'est rendu à Barcelone deux fois. </p><p>J'ai essayé d'utiliser NOT EXISTING et INNER JOIN. Comment attirer les utilisateurs qui n’ont visité qu’une seule ville ? </p><p><br /></p>
Veuillez ajouter la condition HAVING à votre requête :
Si vous devez compter uniquement le nombre de villes uniques, vous pouvez utiliser COUNT(DISTINCT(city)) et les supprimer du regroupement comme ceci :