Tout d'abord, c'est mon schéma de table: 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". P> Pour le moment, je peux avoir le nombre de "réordonné" par produit_id avec p> et le nombre d'occurrences d'un produit avec p> j'ai essayé p> 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) p> p>
4 Réponses :
Est-ce ce que vous recherchez?
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; Code >
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 ;
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
Essayez cet élégant
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;
Je pense que la méthode la plus simple est d'utiliser si réorganisé est vraiment un nombre qui ne prend que sur les valeurs ou: p> La seconde est nécessaire dans les bases de données où la moyenne d'un entier est renvoyée comme un entier. p> p> avg () code>:
0 < / code> et
1 code>, vous pouvez également simplifier cela à: p>
@Picot. . . J'ai répondu parce que je pense que c'est une meilleure réponse à votre réponse actuellement acceptée.