merk
-------------
nokia
samsung
nokia
sony
sony
samsung
nokia
samsung
lg
lg
nu wil ik het volgende:
het aantal keer dat een merk voorkomt berekenen, gaat met
SELECT merk,count(merk) FROM `re_monograms` GROUP BY merk
nu wil ik deze frequenties weer optellen, zodat ik aan een totaal aantal kom, ik zou verwachten dat dit gaat met
SELECT sum(count(merk)) FROM `re_monograms` GROUP BY merk
maar helaas niet, hoe tel ik de frequentie resultaten op?
een stap verder is weer dat ik dus de relatieve frequentie wil bereken, dus het aantal keer dat bijvoorbeeld nokia voorkomt, dat zou ik dit geval dus 0,3 moeten opleveren, hoe doe ik dat?
[quote='Klaasjan Boven schreef op 29.01.2007 22:02']TOch heb ik de indruk dat dit (met name de laatste drie rijen) ook willekeurige output is
mysql> SELECT year, country, product, SUM(profit)
-> FROM sales
-> GROUP BY year, country, product WITH ROLLUP;
+------+---------+------------+-------------+
| year | country | product | SUM(profit) |
+------+---------+------------+-------------+
| 2000 | Finland | Computer | 1500 |
| 2000 | Finland | Phone | 100 |
| 2000 | Finland | NULL | 1600 |
| 2000 | India | Calculator | 150 |
| 2000 | India | Computer | 1200 |
| 2000 | India | NULL | 1350 |
| 2000 | USA | Calculator | 75 |
| 2000 | USA | Computer | 1500 |
| 2000 | USA | NULL | 1575 |
| 2000 | NULL | NULL | 4525 |
| 2001 | Finland | Phone | 10 |
| 2001 | Finland | NULL | 10 |
| 2001 | USA | Calculator | 50 |
| 2001 | USA | Computer | 2700 |
| 2001 | USA | TV | 250 |
| 2001 | USA | NULL | 3000 |
| 2001 | NULL | NULL | 3010 |
| NULL | NULL | NULL | 7535 |
+------+---------+------------+-------------+
Volgens mij moet je er du erg voorzichtig mee zijn
De laatste records zijn ook duidelijk, mijns insziens. Niets niet "willekeurige output".
In 2001 waren er 50 calculators, 2700 computers en 250 TV's verkocht. Totaal (USA | NULL) is 3000
In 2001 waren er in Finland alleen maar 10 Phones verkocht. Totaal in 2001 is dus 3010. (2001 |NULL |NULL)
En het laatste record is het totaal van 2000 (2000 | NULL | NULL | = 4525) plus het totaal van 2001 (wat ik net al zei 3010) dus dat is 7535 en dat is het totaal aantal gevonden records.
Of het misgaat als je GROUP BY doet op meerdere kolommen weet ik niet.[/quote]
Dat schreef ik in mijn post daaronder ook al, inderdaad nix willekeurig