Pour certaines personnes, cela peut sembler très simple, mais je ne peux tout simplement pas l'obtenir.
J'ai plusieurs requêtes MS-SQL SELECT de la même table encore et encore:
SELECT count(Page) as tAEC
FROM someTable
WHERE Page LIKE '%AEC%'
le prochain
SELECT count(Page) as tTOL
FROM someTable
WHERE Page LIKE '%TOL%'
etc...
Quelle serait la manière la plus efficace d'écrire cette requête. J'ai googlé un tas de questions similaires, mais je ne pouvais pas en faire fonctionner. Donc, toute aide est grandement appréciée.
SELECT sum(case when Page LIKE '%AEC%' then 1 end) as tAEC,
sum(case when Page LIKE '%TOL%' then 1 end) as tTOL
FROM someTable
Vous pouvez utiliser un GROUP BY Page
SELECT
Page
, COUNT(Page) as "nb"
FROM someTable
GROUP BY Page
Vous pouvez également faire un GROUP BY CASE...
SELECT
CASE
WHEN Page LIKE '%AEC%' THEN "AEC"
WHEN Page LIKE '%TOL%' THEN "TOL"
ELSE ""
END AS "type"
, count(Page) as "nb"
FROM someTable
GROUP BY type
Vous pouvez également COUNT IF
SELECT
COUNT(IF(Page LIKE '%AEC%', 1, NULL) THEN "AEC"
, COUNT(IF(Page LIKE '%TOL%', 1, NULL) THEN "TOL"
FROM someTable