J'essaie d'écrire une requête SQL qui va retourner les meilleurs éléments pour chaque entreprise et pour chaque emplacement. J'ai un exemple table MySQL (table_x) qui ressemble à ceci:MySQL Top des éléments basés sur le nombre dans plusieurs groupes
Date | Company | Location | Item | Price | Quantity | Total_Amount
----------|---------|----------|--------------|-------|----------|-------------
1/10/2000 | ABC | 1 | Food | 2 | 6 | 12
1/11/2000 | ABC | 1 | Food | 1 | 2 | 2
1/12/2000 | ABC | 2 | Food | 10 | 5 | 50
1/13/2000 | ABC | 2 | Electronics | 100 | 2 | 200
1/10/2000 | ABC | 1 | Consumables | 10 | 5 | 50
1/15/2000 | ABC | 2 | Electronics | 100 | 3 | 300
1/10/2000 | DEF | 1 | Electronics | 50 | 5 | 250
1/16/2000 | DEF | 1 | Electronics | 50 | 4 | 200
1/19/2000 | DEF | 2 | Food | 10 | 5 | 50
1/14/2000 | DEF | 2 | Food | 2 | 10 | 20
1/11/2000 | DEF | 2 | Food | 5 | 8 | 40
1/11/2000 | DEF | 2 | Electronics | 500 | 2 | 1000
Et par exemple ce que je veux est de retour est le premier élément de comptage par entreprise et par emplacement. Donc, quelque chose comme ça où le premier article par nombre est par entreprise et par emplacement.
Company | Location | Item | AVG(Price) | SUM(Total_Amount) | COUNT(*)
--------|----------|-------------|------------|-------------------|---------
ABC | 1 | Food | 4 | 14 | 2
ABC | 2 | Electronics | 100 | 500 | 2
DEF | 1 | Electronics | 50 | 450 | 2
DEF | 2 | Food | 5.67 | 110 | 3
Je sais comment faire dans l'ensemble entreprise et lieux, mais ils ont du mal à obtenir les éléments supérieurs par comptage d'être au sein de chaque groupe spécifique. Idéalement, je voudrais être en mesure d'étendre cela aux N premiers éléments si j'ai plus de types d'éléments si possible.
Il s'agit de la requête SQL que j'ai exécutée pour générer les éléments supérieurs en fonction des occurrences.
SELECT Company, Location, Item, AVG(Price), SUM(Total_Amount), COUNT(*) FROM table_x
GROUP BY Company, Location, Item
ORDER BY Company, Location, COUNT(*) desc
Quand est-ce que quelque chose est un article haut? Ajoutez également ce que vous avez essayé. – Jeffrey
Salut Jeffrey, un article haut est celui qui s'est produit le plus fréquemment indépendamment du prix, quantité ou total. Donc, dans l'exemple ci-dessus du résultat que je cherche, la société ABC et l'emplacement principal 1 étaient la nourriture parce qu'elle s'est produite deux fois dans ce groupe alors que l'électronique et les consommables seulement une fois. J'ai édité pour ajouter la requête que j'ai courue, mais cela ne me donne que les meilleurs éléments basés sur le compte sur l'ensemble des données. Perdu sur où affiner la déclaration pour le faire dans les groupements si cela a du sens. – Quest