Myslím, že to lze otestovat pomocí funkce sleep(),
například se podívejte na toto demo:http://sqlfiddle.com/#!2/0bc1b/1
Select * FROM t;
| X |
|---|
| 1 |
| 2 |
| 2 |
SELECT x+sleep(1)
FROM t
GROUP BY x+sleep(1);
SELECT x+sleep(1) As name
FROM t
GROUP BY name;
Časy provedení obou dotazů jsou asi 3000 ms ( 3 sekundy ).
V tabulce jsou 3 záznamy a pro každý záznam se dotaz uspí pouze na 1 sekundu,
to znamená, že je výraz vyhodnocen pouze jednou pro každý záznam, nikoli dvakrát.