Clientes que visitaron el centro comercial pero no hicieron ninguna transacci贸n
Escribe una soluci贸n para encontrar los IDs de los usuarios que visitaron el centro comercial sin hacer ninguna transacci贸n y el n煤mero de veces que hicieron ese tipo de visitas. Regresa el resultado ordenado en cualquier orden.
Tabla: Visits
+-------------+---------+
| Column Name | Type |
+-------------+---------+
| visit_id | int |
| customer_id | int |
+-------------+---------+
- `visit_id` contiene valores 煤nicos en esta tabla.
- Esta tabla contiene informaci贸n acerca de los clientes que visitaron el centro comercial.
Tabla: Transactions
+----------------+---------+
| Column Name | Type |
+----------------+---------+
| transaction_id | int |
| visit_id | int |
| amount | int |
+----------------+---------+
- `transaction_id` contiene valores 煤nicos en esta tabla.
- Esta tabla contiene informaci贸n acerca de las transacciones hechas durante la `visit_id`.
El formato del resultado se encuentra en el siguiente ejemplo.
Ejemplo 1:
Entrada:
Visits
+----------+-------------+
| visit_id | customer_id |
+----------+-------------+
| 1 | 23 |
| 2 | 9 |
| 4 | 30 |
| 5 | 54 |
| 6 | 96 |
| 7 | 54 |
| 8 | 54 |
+----------+-------------+
Transactions
+----------------+----------+--------+
| transaction_id | visit_id | amount |
+----------------+----------+--------+
| 2 | 5 | 310 |
| 3 | 5 | 300 |
| 9 | 5 | 200 |
| 12 | 1 | 910 |
| 13 | 2 | 970 |
+----------------+----------+--------+
Salida:
+-------------+----------------+
| customer_id | count_no_trans |
+-------------+----------------+
| 54 | 2 |
| 30 | 1 |
| 96 | 1 |
+-------------+----------------+
Explicaci贸n:
- El cliente con id = 23 visit贸 el centro comercial una vez e hizo una transacci贸n durante la visita con id = 12.
- El cliente con id = 9 visit贸 el centro comercial una vez e hizo una transacci贸n durante la visita con id = 13.
- El cliente con id = 30 visit贸 el centro comercial una vez y no realiz贸 ninguna transacci贸n.
- El cliente con id = 54 visit贸 el centro comercial tres veces. Durante 2 visitas no realiz贸 ninguna transacci贸n, y durante una visita realiz贸 3 transacciones.
- El cliente con ID = 96 visit贸 el centro comercial una vez y no realiz贸 ninguna transacci贸n.
- Como vemos, los usuarios con ID 30 y 96 visitaron el centro comercial una vez sin realizar ninguna transacci贸n. Adem谩s, el usuario 54 visit贸 el centro comercial dos veces y no realiz贸 ninguna transacci贸n.
Soluci贸n
SELECT v.customer_id,
COUNT(v.customer_id) AS count_no_trans
FROM visits v
LEFT JOIN transactions t ON t.visit_id = v.visit_id
WHERE t.transaction_id IS NULL GROUP BY v.customer_id;