Bon, voici le problème: J'ai un tableau avec des données horodatées. Supposons que la date est déjà retirée du timbre à date et la table ressemble à ceci:Obtenir des occurrences répétées dans une période dynamique
;WITH TRX(TRX_Id, TRX_SalesTotal, TRX_TimeStamp) AS
(
SELECT 1, 100, '09:00:00' UNION ALL
SELECT 2, 100, '09:10:00' UNION ALL
SELECT 3, 200, '17:00:00' UNION ALL
SELECT 4, 999, '11:50:00' UNION ALL
SELECT 5, 999, '12:10:00' UNION ALL
SELECT 6, 999, '12:15:00' UNION ALL
SELECT 7, 100, '08:50:00' UNION ALL
SELECT 8, 600, '17:00:00' UNION ALL
SELECT 9, 700, '17:00:00' UNION ALL
SELECT 10, 100, '09:45:00' UNION ALL
SELECT 11, 100, '17:00:00' UNION ALL
SELECT 12, 777, '09:00:00' UNION ALL
SELECT 13, 777, '09:10:00' UNION ALL
SELECT 14, 777, '10:10:00'
)
Je dois faire rapport sur toutes les transactions où la valeur des ventes se produit plus de 2 fois en une heure. Dans une heure donnée. (Une telle période peut donc être de 12h30 à 13h30 pour un total de ventes et de 12h05 à 13h05 pour un autre total de ventes, selon les données.)
Le résultat pour les données ci-dessus doit donc être :
TRX_ID TRX_SalesTotal TRX_TimeStamp
1 100 09:00:00
2 100 09:10:00
7 100 08:50:00
10 100 09:45:00
4 999 11:50:00
5 999 12:10:00
6 999 12:15:00
Toute aide serait grandement appréciée!
Salut, Merci pour la réponse rapide. Votre solution regarde un intervalle de deux heures au lieu de 1 heure. Notez que les transactions avec les identifiants 12, 13 et 14 ne doivent pas être signalées. – Ann
Vous devez réfléchir un peu plus au problème. Pour une transaction donnée, vous voulez le signaler si au moins un autre est à moins d'une heure de celui-ci. C'est à dire. 1 heure avant et 1 heure après. Le violon SQL renvoie l'ensemble de résultats que vous avez demandé. –
Non, il doit uniquement signaler les transactions dont la valeur de vente est supérieure à DEUX fois par heure. (Pour mon exemple, j'ai utilisé deux, mais dans le problème réel, ce sera une variable et sera généralement beaucoup plus) – Ann