java - mysql query, how to query this
世界只因有你
世界只因有你 2017-06-22 11:54:36
0
4
721

I saw an interview question posted by someone else in the group, =. =, how to query?

世界只因有你
世界只因有你

reply all(4)
黄舟

The title picture is Chinase, click here.
Course determined case:
CASE implementation:

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`

IF implementation:

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`

Course is not sure, use dynamics:

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
洪涛

You should learn the principle
Baidu "mysql row column conversion"
It is useless to only learn this sql

扔个三星炸死你

This kind of god-like sql is used when doing data statistics. It is not used in normal PHP work.

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!