Cette semaine, nous travaillons avec un petit dataset sur des ventes immobilières qui doivent être catégorisées en fonction d’intervalles dynamiques (buckets ou bins). La particularité de ce défi est que les tailles et le nombre d’intervalles peuvent changer rapidement.
Le défi consiste à créer une fonction avec les caractéristiques suivantes :
- Qui peut gérer des intervalles de tailles inégales
- Le premier paramètre doit être la colonne qui informera vos intervalles (dans cet exemple, nous catégorisons en fonction du [prix])
- Le deuxième paramètre doit spécifier l’étendue de vos intervalles (rappelez-vous, ce sont des intervalles inégaux, l’intervalle 1 pourrait aller de 1 à 400, et l’intervalle 2 de 401 à 708, tandis que l’intervalle 3 irait de 709 à 3000). La façon d’arriver à cela est libre: vous pouvez spécifier les bornes inférieures, les bornes supérieures, les deux, le compte dans chaque plage…
- Si vous utilisez le SQL, au minimum, la fonction devrait pouvoir gérer de 2 à 6 intervalles. Si vous utilisez d’autres langages, vous les trouverez suffisamment flexibles pour pouvoir gérer n’importe quel nombre de plages.
La requête devrait ressembler à ce qui suit :
SELECT sale_date,
price,
your_function(price,<bin_ranges>) AS BUCKET_SET1,
your_function(price,<bin_ranges>) AS BUCKET_SET2,
your_function(price,<bin_ranges>) AS BUCKET_SET3,
FROM home_sales
Ensuite, vous devrez tester votre fonction sur les ensembles d’intervalles suivants:
- Bucket_Set1:
- 1: 0 – 1
- 2: 2 – 310,000
- 3: 310001 – 400000
- 4: 400001 – 500000
- Bucket_Set2:
- 1: 0 – 210000
- 2: 210001 – 350000
- Bucket_Set3:
- 1: 0 – 250000
- 2: 250001 – 290001
- 3: 290002 – 320000
- 4: 320001 – 360000
- 5: 360001 – 410000
- 6: 410001 – 470001
Vous trouverez votre code de départ ici:
create table home_sales (
sale_date date,
price number(11, 2)
);
insert into home_sales (sale_date, price) values
(‘2013-08-01’::date, 290000.00),
(‘2014-02-01’::date, 320000.00),
(‘2015-04-01’::date, 399999.99),
(‘2016-04-01’::date, 400000.00),
(‘2017-04-01’::date, 470000.00),
(‘2018-04-01’::date, 510000.00);
Avec les plages mentionnées ci-dessus, les résultats suivants devraient être générés :
Et n’oubliez pas, si vous souhaitez participer aux défis:
1. Inscrivez-vous en tant que membre de Frosty Friday. –> Vous pouvez le faire en cliquant sur la barre latérale, puis en cliquant sur ‘REGISTER‘ (notez que s’inscrire à notre liste de diffusion ne vous donne pas de compte Frosty Friday).
2. Publiez votre code sur GitHub et rendez-le accessible au public (consultez notre guide si vous ne savez pas comment faire, disponible ici)
3. Postez l’URL dans les commentaires du défi.
Si vous avez des questions techniques que vous souhaitez poser à la communauté, vous pouvez les poser ici, sur notre thread dédié.
Leave a Reply
You must be logged in to post a comment.