簡體   English   中英

計算不同列中的記錄(MySQL / php)

[英]Count records from different columns (MySQL/php)

我有這樣的桌子

     id  |  block1  |  block2  |  block3
-----------------------------------------------
     1   |  John    |  John    |
     2   |  Mark    |          |
     3   |          |  Frank   |  Frank

我如何計算表中有多少約翰,馬克和弗蘭克? ES。

John - 2
Mark - 1
Frank - 2

我使用下面的查詢,但僅適用於一列,我不知道所有列的結果如何。 我認為這是一個有用的查詢,因為我閱讀的結果可能是最后一個月或一年

SELECT block1,
COUNT(*) AS total
FROM table
GROUP BY block1
ORDER BY total DESC;

謝謝(對不起,我的英語)

您可以使用UNION ALL取消透視表,然后應用分組:

SELECT block, COUNT(*) AS 'total'
FROM (
   SELECT block1 AS block
   FROM mytable    

   UNION ALL

   SELECT block2
   FROM mytable       

   UNION ALL

   SELECT block3
   FROM mytable) AS t
GROUP BY block

分別選擇列,然后使用UNION合並它們。 然后, COUNT他們。 你可以試試這個-

SELECT col_block, COUNT(col_block) FROM (
(SELECT block1 col_block,
FROM table)
UNION ALL
(SELECT block2 col_block,
FROM table)
UNION ALL
(SELECT block3 col_block,
FROM table)) tbl
GROUP BY col_block

暫無
暫無

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

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