table
date pageid pv
0801 1001 100
0801 1002 200
0801 1003 100
0801 1004 150
0802 1001 200
0802 1002 100
0802 1003 300
0802 1004 250
0803 1001 300
0803 1002 200
0803 1003 400
0803 1004 450要求结果
pageid 0801 0802 0803
1001 100 200 300
1002 200 100 200
1003 100 300 250
1004 150 250 450
date pageid pv
0801 1001 100
0801 1002 200
0801 1003 100
0801 1004 150
0802 1001 200
0802 1002 100
0802 1003 300
0802 1004 250
0803 1001 300
0803 1002 200
0803 1003 400
0803 1004 450要求结果
pageid 0801 0802 0803
1001 100 200 300
1002 200 100 200
1003 100 300 250
1004 150 250 450
, (case date
when 0801 then pv
else 0
end) as 0801
, (case date
when 0802 then pv
else 0
end) as 0802
, (case date
when 0803 then pv
else 0
end) as 0803
from table
SELECT PAGEID,
SUM((CASE DATE
WHEN 0801 THEN
PV
ELSE
0
END)) AS 0801,
SUM((CASE DATE
WHEN 0802 THEN
PV
ELSE
0
END)) AS 0802,
SUM((CASE DATE
WHEN 0803 THEN
PV
ELSE
0
END)) AS 0803
FROM TABLEA
GROUP BY PAGEID;