簡體   English   中英

如何從一個MySQL列輸出多個列?

[英]How to output multiple columns from one MySQL column?

請考慮下表

tweets
---------------------------------
tweet_id  nyse_date   class  type
---------------------------------
1         2011-03-12  2      0
2         2011-03-12  1      1
3         2011-03-12  1      0
4         2011-03-12  1      0
5         2011-03-12  0      0
6         2011-03-12  1      0
7         2011-03-12  3      2
8         2011-03-12  3      0

每條推文都分配了一個'class',它是1,2或3,'type'是0,1或2.我想概述每個類和類型中的推文數量,如下所示:

nyse_date   class1  class2  class3  type0  type1  type2
-------------------------------------------------------
2011-03-12  3       1       2       6      1      1

我開始使用以下查詢(按日期分組,因為真實表有許多不同的日期):

SELECT
  nyse_date,
  COUNT(class) AS class1 FROM tweets WHERE class = 1,
  COUNT(class) AS class2 FROM tweets WHERE class = 2
GROUP BY
  nyse_date ASC

預期的產出是

nyse_date   class1  class2
--------------------------
2011-03-12  3       1     

但我得到了一個錯誤。 我相信這與我每次查詢只能使用一個WHERE子句(我使用的是2)這一事實有關,但我不知道替代方案是什么。 你呢?

任何幫助是極大的贊賞 :-)

試試這個:

SELECT
  nyse_date,
  SUM(class = 1) AS class1,
  SUM(class = 2) AS class2,
  SUM(class = 3) AS class3
FROM 
  tweets
GROUP BY
  nyse_date ASC

class = 1是一個布爾表達式,它的值為TRUEFALSE TRUE等於1 因此,使用SUM實際上意味着“計算條件保持的所有行”

這有用嗎?

SELECT nyse_date, SUM( IF( class =1, 1, 0 ) ) AS class1, SUM( IF( class =2, 1, 0 ) ) AS class2
FROM tweets
GROUP BY nyse_date

暫無
暫無

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

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