Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
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 - Fatal编程技术网

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 数据透视表查询出现问题。我在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

我得到的错误是

编程错误:第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 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配合使用?