MAX (MySQL): verschil tussen versies

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen
(s)
Regel 1: Regel 1:
Selecteer de maximale waarde van een kolom. Bv.:
+
''max'' is een ''aggregerende'' functie, die de maximale waarde van een kolom. Bv.:
  
 
<pre>
 
<pre>
Regel 7: Regel 7:
 
</pre>
 
</pre>
  
Het resultaat is altijd een ''scalar''(!). Bv.:
+
Het resultaat is altijd een ''scalar''. Als je zo'n regel toevoegt aan een select-statement, houd je nog maar één rij over vanwege aggregatie:
  
 
<pre>
 
<pre>
Regel 20: Regel 20:
 
from tools_tmp;
 
from tools_tmp;
  
12 13 14 14
+
> 12 13 14 14
 
</pre>
 
</pre>
 +
 +
Maar dit werkt ook niet:
 +
 +
<pre>
 +
select
 +
 +
  sku,
 +
  length(tools_01_de),
 +
  length(tools_02_de),
 +
  length(tools_03_de),
 +
  (
 +
      select max(length(tools_03_de))
 +
      from tools_tmp
 +
  ) as max_length
 +
 +
from tools_tmp;
 +
 +
>  1  2  3  3
 +
>  5  6  7  7
 +
> 12 13 14 14
 +
</pre>
 +
 +
Nu wordt er namelijk slechts geaggregeerd over het huidige record - weinig zinvol.
 +
  
 
== Bronnen ==
 
== Bronnen ==
  
 
* https://dev.mysql.com/doc/refman/5.0/en/example-maximum-column.html
 
* https://dev.mysql.com/doc/refman/5.0/en/example-maximum-column.html

Versie van 10 nov 2017 11:35

max is een aggregerende functie, die de maximale waarde van een kolom. Bv.:

select max(length(tools_tmp.tools_05_de)) from tools_tmp;

2867

Het resultaat is altijd een scalar. Als je zo'n regel toevoegt aan een select-statement, houd je nog maar één rij over vanwege aggregatie:

select

   sku,
   length(tools_01_de),
   length(tools_02_de),
   length(tools_03_de),
   max(length(tools_03_de))

from tools_tmp;

> 12 13 14 14

Maar dit werkt ook niet:

select

   sku,
   length(tools_01_de),
   length(tools_02_de),
   length(tools_03_de),
   (
      select max(length(tools_03_de))
      from tools_tmp
   ) as max_length

from tools_tmp;

>  1  2  3  3
>  5  6  7  7
> 12 13 14 14

Nu wordt er namelijk slechts geaggregeerd over het huidige record - weinig zinvol.


Bronnen