Mysql
 sql >> Database >  >> RDS >> Mysql

mysql - ricerca tra le date in cui vengono visualizzate tutte le date

Aggiornamento:la mia risposta originale era identica a quella di Quassnoi ma con 1 minuto di ritardo, quindi ho deciso di eliminarla e fare invece qualcosa di diverso. Questa query non presuppone che (id, date) sia univoco. Se è presente più di una voce, seleziona la più economica. Inoltre, somma anche il costo totale e restituisce anche quello che potrebbe anche essere utile.

SELECT id, SUM(price) FROM (
    SELECT id, date, MIN(price) AS price
    FROM Table1
    GROUP BY id, date) AS T1
WHERE `date` BETWEEN '2010-08-05' AND '2010-08-07'
GROUP BY id
HAVING COUNT(*) = DATEDIFF('2010-08-07','2010-08-05') + 1