Je tente de produire une requête qui affiche une colonne qui incrémente (compte) pour chaque groupe de données. L'ordre global des résultats n'a pas d'importance, sauf que l'occurrence doit être comptée par date (la plus ancienne = 1) et doit être réinitialisée pour chaque ensemble de données regroupées. Voici un exemple de table, ProductInteractions.
+---------+------------+----------------+------------+
| User ID | Product ID | Date d'achat | Occurrence |
+---------+------------+----------------+------------+
| user15 | b1290 | 1/1/2012 | 1 |
| user15 | b1290 | 1/15/2013 | 2 |
| user15 | b1290 | 3/15/2019 | 3 |
| user15 | a7983 | 7/22/2017 | 1 |
| user2 | a7983 | 12/3/2015 | 1 |
| user2 | a7983 | 5/6/2016 | 2 |
| user3 | a7983 | 3/24/2017 | 1 |
+---------+------------+----------------+------------+
Données originales :
+---------+------------+-----------+
| User ID | Product ID | Date |
+---------+------------+-----------+
| user15 | b1290 | 1/1/2012 |
| user2 | a7983 | 5/6/2016 |
| user15 | b1290 | 3/15/2019 |
| user15 | a7983 | 7/22/2017 |
| user2 | a7983 | 12/3/2015 |
| user15 | b1290 | 1/15/2013 |
| user3 | a7983 | 3/24/2017 |
+---------+------------+-----------+
Remarque : dans l'exemple ci-dessus, user15 et le produit b1290 ont 3 interactions. Il est important que la première occurrence soit liée à la date d'interaction initiale et que les interactions ultérieures soient comptées par date croissante.
Je pense que le format de base de la requête sera le suivant :
SELECT [User ID],
[Product ID],
[Date d'achat]
-- Quelque chose ici utilisant IDENTITY, peut-être ?
FROM ProductInteractions
GROUP BY [User ID],
[Product ID];