0

私は2列のカウントを取得し、それらの合計を新しい列として実行したいと考えています。これどうやってするの?

私はこのクエリを書きましたが、これは間違った合計を返しています。

SELECT count(case when `status`='1' then 1 else 0 end) AS HOT,
count(case when `status`='5' then 1 end) 
AS Special_Case,count(case when 1=1 then 1 end) AS TOTAL 
FROM `tbl_customer_conversation` group by 
date(`dt_added`),user_id
4

1 に答える 1

2

COUNT はレコードが一致した回数のみを示し、クエリでは常に 1 が返されます。値は または のいずれかである可能性があるため1です0。もcount(1)1 であり、count(0)1です。

HOTAS、ケースの総数が必要で、SPECIAL_CASESUM を使用する必要があります。

SELECT 
    SUM(case when `status`='1' then 1 else 0 end) AS HOT,
    SUM(case when `status`='5' then 1 end) AS Special_Case,
    SUM(case when `status` = '1' or `status` = '5' then 1 end) AS TOTAL 
FROM `tbl_customer_conversation` 
group by date(`dt_added`),user_id
于 2012-04-18T10:16:48.950 に答える