0
열 변수를 사용하여 피벗 또는 크로스 탭을 사용하여 쿼리를 만들어야합니다. 가능하니?Postgresql - 변수 번호가있는 교차 탭 또는 피벗
Data_Id ! Description_Column | Value
--------+--------------------+-------
1 ! Column1 ! value1
1 ! Column2 ! value2
1 ! Column3 ! value3
1 ! Column4 ! value4
2 ! Column1 ! value5
2 ! Column2 ! value6
2 ! Column3 ! value7
2 ! Column4 ! value8
내가
Data_Id ! Column1 ! Column2 ! Column3 ! Column4
1 ! value1 ! value2 ! value3 ! value4
2 ! value5 ! value6 ! value7 ! value8
을받을 필요하지만 가끔은 내가해야합니다 : 나는 다음과 같은 테이블이
Data_Id ! Description_Column | Value
--------+--------------------+-------
3 ! Column1 ! value1
3 ! Column2 ! value2
4 ! Column1 ! value5
4 ! Column2 ! value6
내가 얻을 필요를
Data_Id ! Column1 ! Column2
3 ! value1 ! value2
4 ! value5 ! value6
것을 제외 . 필요한 행은 조인을 통해 선택됩니다. 그래서 가변 개수의 열을 갖게 될 것입니다.
도움 주셔서 감사합니다.
SQL 반 패턴입니다. 한 가지 진술만으로는 그렇게 할 수 없습니다. 똑같이, 당신이 'Dynamic Pivot'을 위해 SO를 검색한다면, 당신은 많은 해답을 발견 할 것입니다; SQL을 작성하는 코드. * (x 열의 경우 y 열과 다른 SQL이 필요하므로 적절한 열 수만큼 SQL을 작성하는 코드가 필요합니다.) * 대부분의 경우 데이터를 원래의 정규화 된 형식으로 유지해야합니다. 사용자 인터페이스 나 다른 처리 계층에서 피벗 할 수도 있지만 SQL에서 그렇게하는 것이 좋습니다. [http://stackoverflow.com/questions/8833679/create-dynamic-table-from-function-in-postgresql] – MatBailie
이렇게하면 약 40 개의 서로 다른 쿼리가 필요합니다. 다른 유형의 데이터 용 테이블 만 사용되었습니다. 약 40 개의 테이블을 생성하는 대신이 형식으로 1 개만 사용했습니다. – NakaBr
40 개의 쿼리가 필요할 수도 있지만 이러한 쿼리를 동적으로 생성 할 수있는 쿼리를 작성할 수 있습니다. 이를 수행 할 수있는 단일 쿼리가 없습니다. 나는 연결된 대답과 다른 답변을 읽는 것이 좋습니다. – MatBailie