행 수를 기반으로 열을 결정하는 SQL 쿼리

user2727704

구매 테이블에 SQL 쿼리를 작성하고 같은 날 여러 항목을 구매 한 경우 'item'열을 'Multi'로 변경하는 데 도움이 필요합니다.

다음은 샘플 테이블입니다.

name | date       | item 
-------------------------
Jack | 20120105   |  TV
Jack | 20120105   |  Table
Jack | 20120105   |  Chair
Ryan | 20170822   |  TV
Roma | 20190525   |  TV
Bill | 20110121   |  Table

예를 들어 위 표의 Jack은 같은 날에 여러 번 구매 했으므로 'item'열에 대해 'Multi'가되고 싶습니다.

name | date       | item 
-------------------------
Jack | 20120105   |  Multi
Ryan | 20170822   |  TV
Roma | 20190525   |  TV
Bill | 20110121   |  Table

이 쿼리는 작동하지만 같은 날 같은 사람이 2 개 이상의 항목을 구매 한 경우 어떻게됩니까?

select name
       case when p1.item <> p2.item then 'U'
             else p1.item
             end as item_name
from purchases p1 join purchases p2 on (p1.name = p2.name)

이것을 달성하는 다른 더 좋은 방법이 있습니까?

감사!

새긴 ​​금

당신은 사용할 수 EXISTS와 함께 절을 SELECT DISTINCT을 변경 itemMulti둘 이상의 항목이 동일한 날에 구입하는 경우 :

SELECT DISTINCT name, date,
       CASE WHEN EXISTS (SELECT *
                         FROM purchases p2 
                         WHERE p2.name  = p1.name
                           AND p2.date  = p1.date
                           AND p2.item != p1.item) THEN 'Multi'
            ELSE item 
        END AS item
FROM purchases p1

또 다른 대안은 COUNT특정 날짜에 사람이 구매 한 항목 을 집계하고 확인하는 것 입니다.

SELECT name, date, 
       CASE WHEN COUNT(*) > 1 THEN 'Multi'
            ELSE MIN(item)
       END AS item
FROM purchases
GROUP BY name, date

두 경우 모두 출력은 다음과 같습니다.

name    date        item
Jack    20120105    Multi
Ryan    20170822    TV
Roma    20190525    TV
Bill    20110121    Table

SQLFiddle 데모

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

정의 된 시퀀스를 기반으로 행을 병합하는 SQL 쿼리

분류에서Dev

열을 기반으로 행을 가져 오는 SQL 쿼리

분류에서Dev

여러 행을 기반으로 일치 결과를 찾기위한 SQL 쿼리

분류에서Dev

열 결과를 단일 행으로 반환하는 Oracle SQL 쿼리

분류에서Dev

이전 쿼리를 기반으로 테이블에서 임의의 행을 선택하는 SQL 쿼리

분류에서Dev

열 수를 행 수로 전치하는 SQL 쿼리

분류에서Dev

동일한 행에 다른 값을 유지하면서 ID를 기반으로 여러 행을 하나로 결합하는 SQL 쿼리?

분류에서Dev

반환 값을 기반으로 한 SQL 쿼리 결과 수

분류에서Dev

절제된 인벤토리 위치를 기반으로 행을 복제하는 SQL Server 쿼리

분류에서Dev

SQL 쿼리 에서이 작업을 수행하는 방법은이 조건을 기반으로 유사한 행 백분율 일치를 찾으십니까?

분류에서Dev

SQL 쿼리-동일한 열의 이중 조건을 기반으로하는 행 반환

분류에서Dev

열 값을 기반으로 데이터를 가져 오는 SQL 쿼리

분류에서Dev

선행 문자열을 기반으로하는 WMI 쿼리

분류에서Dev

연속성을 기반으로 오라클의 행에 대한 고유 ID를 얻는 SQL 쿼리

분류에서Dev

SQL 동일한 테이블의 쿼리를 기반으로 행을 삭제 하시겠습니까?

분류에서Dev

SQL 행 그룹 목록을 기반으로 쿼리를 반복 (루프)하고 각 반복의 결과를 동일한 테이블에 병합합니다.

분류에서Dev

변경 일정 (요일 / 중간 / 스윙)을 기반으로 쿼리를 수행하는 방법

분류에서Dev

SQL Server의 행 값을 기준으로하는 쿼리의 결과로 열 분리

분류에서Dev

여러 행을 결합한 각 레코드에 대해 가변 개수의 열을 반환하는 SQL 쿼리

분류에서Dev

Sqlite, 매개 변수를 기반으로 WHERE 쿼리를 실행할지 여부를 결정하는 방법

분류에서Dev

SQL SELECT를 사용하여 다른 테이블의 특정 행을 기반으로 테이블을 쿼리하는 방법

분류에서Dev

여러 행 값을 기반으로 출력을 가져 오는 SQL 쿼리

분류에서Dev

열 값을 기반으로하는 SQL 선택 쿼리

분류에서Dev

특정 값에 대한 행 수를 기반으로 값을 인쇄하는 SQL

분류에서Dev

사용자 입력을 기반으로 테이블에서 SQL 쿼리를 수행 할 수 있습니까?

분류에서Dev

SQL 쿼리는 두 개의 쿼리를 빈 행으로 하나로 결합

분류에서Dev

SQL Server의 다른 열 그룹을 기반으로 행 수를 얻는 방법

분류에서Dev

Excel에서 SQL 쿼리를 여러 번 실행하고 행을 기준으로 변수 변경

분류에서Dev

각 행 내의 열을 정렬하고이를 기반으로 행을 정렬하는 SQL

Related 관련 기사

  1. 1

    정의 된 시퀀스를 기반으로 행을 병합하는 SQL 쿼리

  2. 2

    열을 기반으로 행을 가져 오는 SQL 쿼리

  3. 3

    여러 행을 기반으로 일치 결과를 찾기위한 SQL 쿼리

  4. 4

    열 결과를 단일 행으로 반환하는 Oracle SQL 쿼리

  5. 5

    이전 쿼리를 기반으로 테이블에서 임의의 행을 선택하는 SQL 쿼리

  6. 6

    열 수를 행 수로 전치하는 SQL 쿼리

  7. 7

    동일한 행에 다른 값을 유지하면서 ID를 기반으로 여러 행을 하나로 결합하는 SQL 쿼리?

  8. 8

    반환 값을 기반으로 한 SQL 쿼리 결과 수

  9. 9

    절제된 인벤토리 위치를 기반으로 행을 복제하는 SQL Server 쿼리

  10. 10

    SQL 쿼리 에서이 작업을 수행하는 방법은이 조건을 기반으로 유사한 행 백분율 일치를 찾으십니까?

  11. 11

    SQL 쿼리-동일한 열의 이중 조건을 기반으로하는 행 반환

  12. 12

    열 값을 기반으로 데이터를 가져 오는 SQL 쿼리

  13. 13

    선행 문자열을 기반으로하는 WMI 쿼리

  14. 14

    연속성을 기반으로 오라클의 행에 대한 고유 ID를 얻는 SQL 쿼리

  15. 15

    SQL 동일한 테이블의 쿼리를 기반으로 행을 삭제 하시겠습니까?

  16. 16

    SQL 행 그룹 목록을 기반으로 쿼리를 반복 (루프)하고 각 반복의 결과를 동일한 테이블에 병합합니다.

  17. 17

    변경 일정 (요일 / 중간 / 스윙)을 기반으로 쿼리를 수행하는 방법

  18. 18

    SQL Server의 행 값을 기준으로하는 쿼리의 결과로 열 분리

  19. 19

    여러 행을 결합한 각 레코드에 대해 가변 개수의 열을 반환하는 SQL 쿼리

  20. 20

    Sqlite, 매개 변수를 기반으로 WHERE 쿼리를 실행할지 여부를 결정하는 방법

  21. 21

    SQL SELECT를 사용하여 다른 테이블의 특정 행을 기반으로 테이블을 쿼리하는 방법

  22. 22

    여러 행 값을 기반으로 출력을 가져 오는 SQL 쿼리

  23. 23

    열 값을 기반으로하는 SQL 선택 쿼리

  24. 24

    특정 값에 대한 행 수를 기반으로 값을 인쇄하는 SQL

  25. 25

    사용자 입력을 기반으로 테이블에서 SQL 쿼리를 수행 할 수 있습니까?

  26. 26

    SQL 쿼리는 두 개의 쿼리를 빈 행으로 하나로 결합

  27. 27

    SQL Server의 다른 열 그룹을 기반으로 행 수를 얻는 방법

  28. 28

    Excel에서 SQL 쿼리를 여러 번 실행하고 행을 기준으로 변수 변경

  29. 29

    각 행 내의 열을 정렬하고이를 기반으로 행을 정렬하는 SQL

뜨겁다태그

보관