Sql 数据透视表查询出现问题。我在django中将其用作postgres数据库上的原始查询 选择名称、'1'、'2'、'3' 从…起 选择 数据库\u jobdeffect.defect\u id, 数据库_session.name, 将*算作cu 从…起 ner中的数据库会话 在database_job.session_id=database_session.id上加入database_job 数据库上的内部联接数据库\u jobdefect\u job.id=数据库\u jobdefect.job\u id 分组 数据库_session.name, 数据库\u jobdeffect.defect\u id PIVOT countdatabase\u session.name 对于[1]、[2]、[3]中的数据库\u jobdeffect.defect\u id
我得到的错误是 编程错误:第1行或其附近出现语法错误: …在.name上,数据库\u jobdefect.defect\u id PIVOT countdatabase\u上 Postgres不支持pivot语法。只需使用条件聚合:Sql 数据透视表查询出现问题。我在django中将其用作postgres数据库上的原始查询 选择名称、'1'、'2'、'3' 从…起 选择 数据库\u jobdeffect.defect\u id, 数据库_session.name, 将*算作cu 从…起 ner中的数据库会话 在database_job.session_id=database_session.id上加入database_job 数据库上的内部联接数据库\u jobdefect\u job.id=数据库\u jobdefect.job\u id 分组 数据库_session.name, 数据库\u jobdeffect.defect\u id PIVOT countdatabase\u session.name 对于[1]、[2]、[3]中的数据库\u jobdeffect.defect\u id,sql,postgresql,Sql,Postgresql,我得到的错误是 编程错误:第1行或其附近出现语法错误: …在.name上,数据库\u jobdefect.defect\u id PIVOT countdatabase\u上 Postgres不支持pivot语法。只需使用条件聚合: SELECT Name, COUNT(*) FILTER (WHERE djd.defect_id = 1) THEN defect_1, COUNT(*) FILTER (WHERE djd.defect_id = 2) THEN de
SELECT Name,
COUNT(*) FILTER (WHERE djd.defect_id = 1) THEN defect_1,
COUNT(*) FILTER (WHERE djd.defect_id = 2) THEN defect_2,
COUNT(*) FILTER (WHERE djd.defect_id = 3) THEN defect_3
FROM database_session ds JOIN
database_job dj
ON dj.session_id = ds.id JOIN
database_jobdefect djd
ON dj.id = djd.job_id
GROUP BY ds.name;
示例数据和期望的结果会有所帮助。我讨厌语法,但Postgres确实有一个使用tablefunc扩展的交叉表函数。为什么您希望SQL Server语法与Postgres配合使用?