Query voor berekenen gemiddeld aantal producten per order

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

George van Baasbank

George van Baasbank

28/07/2013 21:06:55
Quote Anchor link
Hallo allemaal,

Ik heb een ordertabel met daar in een veld [ordernummer] en een veld [aantal] voor het aantalgekochte producten (per record). In principe staat deze altijd op 1 maar er kunnen meer records zijn met het zelfde ordernummer als de koper meer producten afneemt.
Nu wil ik een query bedenken die voor mij in één slag het gemiddeld aantal gekochte producten in een meetperiode toont.
Je krijgt dan zoiets als (dit werkt dus niet):

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
SELECT
   SUM(aantal) AS aantal_gekocht,
   COUNT(DISTINCT(ordernummer)) AS orderaantal,
   aantal_gekocht/orderaantal AS gemiddeld
FROM
   shop_bestellingen
WHERE
   MONTH(besteldatum) = 7 AND YEAR(besteldatum) = 2013


Hoe krijg ik deze query nu wel werkend?


George
Gewijzigd op 28/07/2013 21:23:32 door George van Baasbank
 
PHP hulp

PHP hulp

29/03/2024 00:34:09
 
Francoi gckx

Francoi gckx

29/07/2013 01:01:59
Quote Anchor link
mysql heeft een functie avg misschien kan je die gebruiken
 
George van Baasbank

George van Baasbank

29/07/2013 08:51:52
Quote Anchor link
Maar die werkt niet in combinatie met de distinct
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

29/07/2013 09:34:49
Quote Anchor link
Je kan geen kolomalias in een select list gebruiken.
Dus je moet dan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
SELECT
    SUM(aantal) AS aantal_gekocht,
    COUNT(DISTINCT(ordernummer)) AS orderaantal,
       SUM(aantal) / COUNT(DISTINCT ordernummer) AS gemiddelde
FROM
    shop_bestellingen
WHERE
    besteldatum BETWEEN '2013-07-01' AND '2013-07-31'

Let op wat ik gedaan heb met de where clause, gebruik daar indien mogelijk geen bewerkingen op een kolom in,
het verschil tussen een full table scan of een index gebruiken.
 
George van Baasbank

George van Baasbank

29/07/2013 10:17:08
Quote Anchor link
Ger,

Bedankt.


Topic gesloten
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.