source

데이터베이스에서 상태 열의 내용을 제목으로 표시하는 방법

bestscript 2022. 12. 3. 12:44

데이터베이스에서 상태 열의 내용을 제목으로 표시하는 방법

Mysql Database에서 아래의 데이터를 찾아 모바일 번호를 사용하여 상태를 셀 때 행의 제목으로 "상태"를 표시하고 상태 아래에 "카운트"를 표시해야 합니다.

**cust_mob_no       status**

918072740683    unattended
918072740683    closed
918072740683    NotApplicable
918072740683    Assigned
918072740683    NotApplicable
918072740683    open
918072740683    open

아래와 같이 데이터를 표시하는 방법은 무엇입니까?

unattended  closed  NotApplicable   Assigned    open
   1          1           2           1           2

이렇게 셀렉트 케이스를 사용할 수 있습니다.

SELECT
    mobileNumber,  
    SUM(CASE WHEN (statusName='unattended') THEN 1 ELSE 0 END) AS unattended,
    SUM(CASE WHEN (statusName='closed' ) THEN 1 ELSE 0 END) AS closed,
    SUM(CASE WHEN (statusName='NotApplicable') THEN 1 ELSE 0 END) AS NotApplicable,
    SUM(CASE WHEN (statusName='Assigned') THEN 1 ELSE 0 END) AS Assigned
FROM 
    MyTable
GROUP BY 
    mobileNumber

DBFiddle 샘플 코드

피벗 샘플 쿼리를 사용할 수 있습니다.

SELECT [unattended],,[NotApplicable],[Assigned],[open] FROM   
(SELECT [mobileNumber],[status] FROM MyTable )Tab1  
PIVOT  
(  
COUNT([mobileNumber]) FOR status IN ([unattended],,[NotApplicable], 
[Assigned],[open])) AS Tab2  

DB Fidle 샘플

이게 네가 필요한 거야

    SELECT
        cust_mob_no,  
        SUM(CASE WHEN (Status='unattended') THEN 1 ELSE 0 END) AS unattended,
        SUM(CASE WHEN (Status='closed' AND pagecount=1) THEN 1 ELSE 0 END) AS closed,
        SUM(CASE WHEN (Status='NotApplicable' AND pagecount=2) THEN 1 ELSE 0 END) AS NotApplicable,
        SUM(CASE WHEN (Status='Assigned' AND pagecount=3) THEN 1 ELSE 0 END) AS Assigned
    FROM 
        your_table
    GROUP BY 
        cust_mob_no

언급URL : https://stackoverflow.com/questions/51036706/how-to-display-the-contents-from-the-status-column-as-a-heading-in-database