L'image du titre est en chinois, cliquez ici. Cas déterminé par le cours : Mise en œuvre du CASE :
SELECT
`Name`,
MAX(
CASE
WHEN Course = 'Chinase' THEN
Score
END
) AS Chinase,
MAX(
CASE
WHEN Course = 'Math' THEN
Score
END
) AS Math,
MAX(
CASE
WHEN Course = 'English' THEN
Score
END
) AS English
FROM
table1
GROUP BY
`Name`
Mise en œuvre du SI :
SELECT
`Name`,
SUM(IF (Course = 'Chinase', Score, 0)) AS Chinase,
SUM(IF (Course = 'Math', Score, 0)) AS Math,
SUM(IF (Course = 'English', Score, 0)) AS English
FROM
table1
GROUP BY `Name`
Le cours n'est pas sûr, utilisez la dynamique :
SET @CC='';
SELECT @CC:=CONCAT(@CC,'SUM(IF(Course=\'',Course,'\'',',Score,0)) AS ',Course,',') FROM (SELECT DISTINCT Course FROM table1) A;
SET @HH=CONCAT('SELECT Name,',LEFT(@CC,LENGTH(@CC)-1),' FROM table1 GROUP BY Name');
PREPARE stmt FROM @HH;
EXECUTE stmt;
select name, sum(case when Course='Chinese' then Score end) as Chinese,
sum(case when type='Math' then Score end) as Math,
sum(case when type='English' then Score end) as English
from table1
group by name
L'image du titre est en chinois, cliquez ici.
Cas déterminé par le cours :
Mise en œuvre du CASE :
Mise en œuvre du SI :
Le cours n'est pas sûr, utilisez la dynamique :
Vous devriez apprendre le principe
Baidu "conversion de colonne de ligne mysql"
Il est inutile d'apprendre uniquement ce SQL
Ce type de SQL magique est utilisé lors de l'élaboration de statistiques de données, ce qui n'est généralement pas utilisé dans le travail PHPer.