0
votes

Calculer le taux d'attribut par ID SQL

Tout d'abord, c'est mon schéma de table: xxx

Mon problème est calculé le taux de réorganisation par produit. Nous pouvons donc voir "add_to_cart_order" est inutile, je ne sais pas pour "order_id". "Réorganisée" peut avoir une valeur "1" et "0".

Pour le moment, je peux avoir le nombre de "réordonné" par produit_id avec xxx

et le nombre d'occurrences d'un produit avec xxx

j'ai essayé xxx

mais il faut trop de temps (Je ne sais pas si c'est la bonne demande parce que je n'ai pas encore de résultats)


0 commentaires

4 Réponses :


2
votes

Est-ce ce que vous recherchez? XXX


1 commentaires

Votre solution et @ Vignh-Kumar-A de réponse est juste. Je devais ajouter des ajustements, c'est ma demande finale: Sélectionnez Product_Id, Somme (cas lors de la réorganisation de la réordonnée = '1' puis 100 else 0) / Comptez (*) en tant que réoordereRate du groupe de train par Product_ID;



0
votes

Ceci calculera pour chaque produit_id code>: le nombre de lignes dans le train cnt_prod code> Nombre de lignes dans TRAIN CNT_PROD_REODORDOORDOORD CODE> C'était réorganisée

select st.product_id , st.cnt_prd , st.cnt_prd / st.cnt_prd_reord
from (
     SELECT t1.product_id, COUNT(t1.product_id) as cnt_prd,
                           COUNT(case when t.1.reordered='1' then  1 else NULL end   ) as cnt_prd_reord 
     from train t1 group by t1.product_id 
) as st ;


1 commentaires

J'ai cette erreur avec votre solution: "Tables dérivées non prises en charge" mais maintenant ma demande fonctionne avec les autres réponses



1
votes

Essayez cet élégant xxx


1 commentaires

Votre solution et la réponse @ DCSQL7777 est correcte. J'ai dû ajouter quelques ajustements, c'est ma demande finale: Sélectionnez Product_Id, Somme (cas lors de la réorganisation de la réordonnée = '1' puis 100 else 0 extrémité) / Comptez (*) en tant que réorganisation du groupe de train par produit_id;



1
votes

Je pense que la méthode la plus simple est d'utiliser avg () : xxx

si réorganisé est vraiment un nombre qui ne prend que sur les valeurs 0 < / code> et 1 , vous pouvez également simplifier cela à: xxx

ou: xxx

La seconde est nécessaire dans les bases de données où la moyenne d'un entier est renvoyée comme un entier.


1 commentaires

@Picot. . . J'ai répondu parce que je pense que c'est une meilleure réponse à votre réponse actuellement acceptée.