簡體   English   中英

MySQL:如何從同一個表中的字段名稱中選擇COUNT兩個字段名稱

[英]MySQL: How to SELECT COUNT two field names from originating from field name on the same table

場景:我想創建一個查詢,該查詢可以返回來自同一列但標准不同的兩個或多個字段,以便我可以對數據進行計數。

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`

通過使用case內部count

SELECT
FROM_UNIXTIME(news_date, '%Y-%m-%d') AS `DATE`,
COUNT(case news_slant when 1 then 1 else null end) AS `Neutral`,
COUNT(case news_slant when 2 then 1 else null end) AS `Positive`,
COUNT(case news_slant when 3 then 1 else null end) AS `Negative`
FROM tbl_news
GROUP BY `news_date`
ORDER BY `news_date`

用例聲明:

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

您可以使用標准IF子句。 COUNT()只計算非空值。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM