我只是在解决我需要的查询时遇到麻烦。我有这样的场景
colDist colGender attnedancePrcnt
Place-1 Male 2.5 %
Place-1 Female 1.5%
Place-2 Male 3.5%
Place-2 Female 2.1%
现在我需要在mysql中查询以获得这样的数据
colDist colMale colFemale
Place-1 2.5% 1.5 %
Place-2 3.5% 2.1 %
这是由coldDist组成的一组,但我只是遇到麻烦,将colMale和colFemale从第一个数据集转换为第二个数据集。
预感谢。
这种方法.....
select colDist, if(colGender='Male',colGender,null ) as colMale ,
if(colGender='Female',colGender,null ) as colFemale
from tablename
给我这样的结果
colDist colMale colFemale attnedancePrcnt
Place-1 Male NULL 2.5
Place-1 NULL Female 1.5
Place-2 Male NULL 3.5
Place-2 NULL Female 2.1
但我再次需要他们:
colDist colMale colFemale
Place-1 2.5% 1.5 %
Place-2 3.5% 2.1 %
那么如何根据需要对数据进行分组或透视?
感谢。
答案 0 :(得分:1)
检查它是否按预期工作:
select colDist, if(colGender='Male',colGender,null ) as colMale ,
if(colGender='Female',colGender,null ) as colFemale
from tablename
答案 1 :(得分:1)
SELECT
t1.colDist,
t1.attnedancePrcnt AS colMale,
t2.attnedancePrcnt AS colFemale
FROM
tablename AS t1
INNER JOIN tablename AS t2 ON t1.colDist = t2.colDist
AND t1.colGender != t2.colGender
WHERE
t1.colGender = 'Male'
值得注意的是,“attnedance”应该拼写为“出席”。