2
저는 Postgres 8.4.9를 사용 중이며 크로스 탭을 작동시키는 데 어려움을 겪고 있습니다. 여기 왜 내 Postgres 크로스 탭에서 '쿼리 지정 반환 tuple에 7 개의 열이 있지만 크로스 탭에서 6을 반환합니까?'라는 오류가 발생합니다.
내 데이터의 모양 무엇 :rowname | bucket | bucket_value
----------------+---------------------+--------------
CL100001 10011 | 1 A01 | 01/01/2001 | 14 16
CL100001 10011 | 1 A01 | 01/01/2001 |
CL100001 10011 | 1 A01 | 01/01/2001 |
CL100001 10011 | 1 A01 | 01/01/2001 | 440 480
CL100001 10011 | 1 A01 | 01/01/2001 | 475 475
CL100002 10021 | 1 B01 | 01/01/2001 | 16 16
CL100002 10021 | 1 B01 | 01/01/2001 |
CL100002 10021 | 1 B01 | 01/01/2001 |
CL100002 10021 | 1 B01 | 01/01/2001 | 440 480
CL100002 10021 | 1 B01 | 01/01/2001 | 475 475
CL100003 10030 | 1 C01 | 01/01/2001 | 14 16
CL100003 10030 | 1 C01 | 01/01/2001 |
CL100003 10030 | 1 C01 | 01/01/2001 |
CL100003 10030 | 1 C01 | 01/01/2001 | 440 440
CL100003 10030 | 1 C01 | 01/01/2001 | 475 475
...
이이 테이블에서 선택, CT, 즉 데이터를 준비하는 데 사용됩니다.
다음으로, 내 쿼리 보이는 나뿐만 아니라 내가 할 수와 포스트 그레스 문서를 다음과 같은 구성을 시도한 어떤
SELECT gtreport.* FROM crosstab('SELECT
rowname,
bucket,
bucket_value
FROM
ct
ORDER BY
rowname, bucket',
'SELECT DISTINCT
markername
FROM
markers M,
genotypes G,
gsamples S,
guploads U
WHERE
M.markerid=G.markers_id
AND G.gsamples_id=S.id
AND S.guploads_id=U.id
AND (U.ibg_study_id=15 AND U.ibg_project_id is NULL)
ORDER BY
M.markername')
AS gtreport(
labid text,
box_well_run_date text,
HTTLPR text,
Amelo text,
Caspi text,
DAT1 text,
DRD4 text)
있다. 그러나이 경우 오류가 발생합니다. "쿼리 지정 반환 tuple에는 7 개의 열이 있지만 크로스 탭에는 6이 반환됩니다."
어느 것이 당혹 스럽습니다. 누군가가 내가 잘못 한 일을 보는 경우에는 많은 문제가 당신의 결과 집합에 box_well_run_date
을 찾을 수 없습니다입니다
--Rick
얼마나 많은 행이 두 번째 쿼리 ('별개의 markername을 선택 ...') 않습니다 생산? –
은 우리에게 두 번째 쿼리에서 반환되는 내용을 분명히 할 필요가 있습니다 ... ct는 있지만 마커는 제공하지 않습니다. 두 번째 쿼리에서 돌아 오는 두 개의 고유 값과 두 개의 고유 값만 기대합니까? 크로스 탭에 대한 선호는 ID 필드를 원하는 7 개의 각 열과 조인하고 (각 ID에 대해 7 행을 만들어 크로스 탭 보고서를 채우는) select 문을 만든 다음 다른 테이블에 조인하여 값을 채 웁니다. 필요합니다. – Twelfth
사과; 여기에 무엇을 두 번째 쿼리의 반환 : markername ------------ 5HTTLPR Amelo 카스피 DAT1 DRD4 (5 행) – rixter