Rechercher les utilisateurs qui visitent une seule ville au lieu de plusieurs villes dans MySQL [duplicata]
P粉764785924
P粉764785924 2023-07-24 22:47:07
0
1
576
<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>
P粉764785924
P粉764785924

répondre à tous(1)
P粉147747637

Veuillez ajouter la condition HAVING à votre requête :

SELECT user_id, city, COUNT(*) as result
FROM visits 
WHERE start_ts >= 1675209600 -- 1675209600 = 01.02.2023 00:00
AND end_ts <= 1676419200 -- 1676419200 = 15.2.2023 00:00
GROUP BY user_id, city
HAVING result = 1

Si vous devez compter uniquement le nombre de villes uniques, vous pouvez utiliser COUNT(DISTINCT(city)) et les supprimer du regroupement comme ceci :

SELECT user_id, city, COUNT(DISTINCT(city)) as result
FROM visits 
WHERE start_ts >= 1675209600 -- 1675209600 = 01.02.2023 00:00
AND end_ts <= 1676419200 -- 1676419200 = 15.2.2023 00:00
GROUP BY user_id
HAVING result = 1
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal