ik heb de volgende kolom

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?


Robert schreef op 30.01.2007 12:14
[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

Reageren