0

シナリオ:データをカウントできるように、同じ列から取得されたが条件が異なる 2 つ以上のフィールドを返すことができるクエリを作成したいと考えています。

SQL:

SELECT
       FROM_UNIXTIME(news_date, '%Y-%m-%d') AS `DATE`,
       COUNT(news_slant=1) AS `Neutral`,
       COUNT(news_slant=2) AS `Positive`,
       COUNT(news_slant=3) AS `Negative`
FROM tbl_news
GROUP BY `news_date`
ORDER BY `news_date`
4

3 に答える 3

1

ユース ケース ステートメント:

SELECT FROM_UNIXTIME(news_date, '%Y-%m-%d') AS `DATE`,
    COUNT(CASE WHEN news_slant=1 THEN 1 ELSE null END) AS Neutral,
    COUNT(CASE WHEN news_slant=2 THEN 1 ELSE null END) AS Positive,
    COUNT(CASE WHEN news_slant=3 THEN 1 ELSE null END) AS Negative ,
FROM MyTable
GROUP BY news_date
ORDER BY news_date
于 2013-09-17T04:45:59.973 に答える
0

標準IF句を使用できます。 COUNT()null 以外の値のみをカウントします。

SELECT 
FROM_UNIXTIME(news_date, '%Y-%m-%d') AS DATE, 
COUNT(IF(news_slant=1,1,NULL)) AS Neutral, 
COUNT(IF(news_slant=2,1,NULL)) AS Positive, 
COUNT(IF(news_slant=3,1,NULL)) AS Negative 
FROM tbl_news 
GROUP BY news_date 
ORDER BY news_date
于 2013-09-17T04:49:25.407 に答える