как отобразить содержимое столбца состояния в качестве заголовка в базе данных - PullRequest
0 голосов
/ 26 июня 2018

Найдите приведенные ниже данные из базы данных Mysql, и из этих данных, когда я подсчитываю статус по номеру мобильного телефона, мне нужно, чтобы «статус» отображался в качестве заголовка строки, а «счет» - под статусом.

**cust_mob_no       status**

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

Помогите мне с запросом Mysql для отображения данных, как показано ниже ..

unattended  closed  NotApplicable   Assigned    open
   1          1           2           1           2

Ответы [ 2 ]

0 голосов
/ 26 июня 2018

Вы можете использовать выбранный регистр, как этот

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], [closed],[NotApplicable],[Assigned],[open] FROM   
(SELECT [mobileNumber],[status] FROM MyTable )Tab1  
PIVOT  
(  
COUNT([mobileNumber]) FOR status IN ([unattended], [closed],[NotApplicable], 
[Assigned],[open])) AS Tab2  

Пример кода DB Fiddle

0 голосов
/ 26 июня 2018

Это то, что вам нужно

    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
...