Aggregatie (MySQL)
Naar navigatie springen
Naar zoeken springen
Aggregatie lijkt twee dingen te kunnen beteken:
- Samenvoegen van identieke informatie
- Afleiden (derive) van nieuwe informatie van een verzameling gegevens.
Aggregated functions - Afleiden
Met aggregated functions wordt rondom MySQL meestal deze tweede betekenis te worden bedoeld. Denk aan functies zoals
- count()
- max()
- min()
- sum().
Samenvoegen
- Voorbeeld: Ontdubbelen (MySQL)
Casus: Aggregeer indien gelijk of null (feb. 2021)
In een tabel moet kolom sku alleen worden ingevuld, als de waarde in de kolommen ca_sku, cm_sku, etc. identiek is. Hoe kan dat op een handige manier?
Uiteindelijk ben ik met een iteratieve oplossing gekozen:
- Deze is verbazend snel (kost een paar seconde op een tabel met 67.000 records)
- Code is gemakkelijk te begrijpen
- Gemakkelijk uit te breiden
- Merk op dat de kolom de waarde "-1" krijgt, als er geen geaggregeerde waarde beschikbaar is, en
Null
als er geen waarde beschikbaar is.
################################################################################ # Aggregate EAN ################################################################################ # # ca_ean ######################################## # update asin set ean = ca_ean; # cm_ean ######################################## # update asin set ean = cm_ean where ean is null; update asin set ean = "-1" where ean is not null and cm_ean is not null and ean<>cm_ean; # de_ean ######################################## # update asin set ean = de_ean where ean is null; update asin set ean = "-1" where ean is not null and de_ean is not null and ean<>de_ean; # es_ean ######################################## # update asin set ean = es_ean where ean is null; update asin set ean = "-1" where ean is not null and es_ean is not null and ean<>es_ean; # fr_ean ######################################## # update asin set ean = fr_ean where ean is null; update asin set ean = "-1" where ean is not null and es_ean is not null and ean<>fr_ean; # it_ean ######################################## # update asin set ean = it_ean where ean is null; update asin set ean = "-1" where ean is not null and it_ean is not null and ean<>it_ean; # mx_ean ######################################## # update asin set ean = mx_ean where ean is null; update asin set ean = "-1" where ean is not null and mx_ean is not null and ean<>mx_ean; # nl_ean ######################################## # update asin set ean = nl_ean where ean is null; update asin set ean = "-1" where ean is not null and nl_ean is not null and ean<>nl_ean; # uk_ean ######################################## # update asin set ean = uk_ean where ean is null; update asin set ean = "-1" where ean is not null and uk_ean is not null and ean<>uk_ean; # Check ######################################## # select ean, ca_ean, cm_ean, de_ean, es_ean, fr_ean, it_ean, mx_ean, nl_ean, uk_ean from asin;
Zoektermen
- Aggregated functions
- Aggregatie
- Aggregatie MySQL
- Aggregation