Esto debería ser realmente simple, lo sé, pero por mi vida no puedo hacer que mi consulta haga lo que necesito.Grupo MySQL por con cláusula WHERE con contar más de 1
Estoy buscando para encontrar todas las filas que tienen un cierto estado (paid
) agrupadas por ref
pero solo si hay más de 1 fila encontrada.
Ésta es mi tabla de ejemplo:
+-----+----------+----------+-------+
| id | deleted | status | ref |
+-----+----------+----------+-------+
| 1 | 0 | pending | 10001 |
| 2 | 0 | paid | 10001 |
| 3 | 0 | paid | 10001 |
| 4 | 0 | paid | 10002 |
| 5 | 1 | pending | 10002 |
| 6 | 1 | paid | 10002 |
| 7 | 0 | pending | 10003 |
| 8 | 0 | paid | 10003 |
| 9 | 0 | paid | 10003 |
| 10 | 0 | paid | 10003 |
| 11 | 0 | pending | 10004 |
| 12 | 0 | paid | 10004 |
| 13 | 1 | pending | 10005 |
| 14 | 1 | paid | 10005 |
| 15 | 1 | paid | 10005 |
| 16 | 0 | paid | 10005 |
| 17 | 0 | pending | 10006 |
| 18 | 0 | paid | 10006 |
| 19 | 0 | paid | 10006 |
+-----+----------+----------+-------+
Ésta es mi SQL:
SELECT * FROM `orders`
WHERE `deleted` = 0 AND `status` = 'paid'
GROUP BY SUBSTR(`ref`,0,5)
HAVING COUNT(*) > 1
ORDER BY `id` DESC
necesito tenerlo a juego por SUBSTR debido a ref
veces que contiene los números adjuntas.
El problema es que mi consulta se vuelve esto:
+-----+----------+---------+-------+
| id | deleted | status | ref |
+-----+----------+---------+-------+
| 2 | 0 | paid | 10001 |
+-----+----------+---------+-------+
Cuando me gustaría que regresará ref
s 10001
, 10003
& 10006
.
¿Alguien me puede ayudar a resolver lo que estoy haciendo mal?
Gracias
Y yo estaba vencido por 8 segundos .. :) – barsju
Gracias! Apreciar ... Incluí la cita del documento ... Eso fue lo que me costó los 8 segundos ... :) – barsju