簡體   English   中英

有效地合並兩個SQL查詢

[英]Combine two SQL Queries efficiently

我有兩個查詢:

1)

SELECT COUNT(*) AS total, COUNT(supporter) AS done FROM Supports;

2)

SELECT supporter, COUNT(supporter) AS amount FROM Supports 
GROUP BY supporter ORDER BY amount DESC LIMIT 1;

如何有效地結合它們?

這是表格的樣子:

+-----------------------------+
| id    | name    | supporter |
+-----------------------------+
|    1  | user1   |    sup1   |
|    2  | user1   |    sup2   |
|    3  | user1   |    NULL   |
|    4  | user2   |    sup1   |
|    5  | user2   |    sup3   |
+-----------------------------+

由於需要總數,因此必須使用子查詢來合並為一個查詢。 將其包括在FROM子句中。

SELECT supporter, COUNT(supporter) AS amount, total, done 
FROM Supports,
    (SELECT COUNT(*) AS total, COUNT(supporter) AS done FROM Supports) totals
GROUP BY supporter
ORDER BY amount DESC
LIMIT 1;

我相信這是您要尋找的:

SELECT
  (SELECT COUNT(*) FROM Supports) as total,
  (SELECT COUNT(supporter) FROM Supports) as done,
  supporter, 
  COUNT(*) AS amount 
FROM Supports 
GROUP BY supporter 
ORDER BY amount;

結果看起來像這樣: http : //sqlfiddle.com/#!9/9e4ee/9

total  done  supporter   amount
5      4     sup3        1
5      4     sup2        1
5      4     NULL        1
5      4     sup1        2
SELECT  a.total, a.done, b.supporter, b.amount 
      ( SELECT  COUNT(*) AS total, 
                COUNT(supporter) AS done
            FROM  Supports 
      ) AS a
    JOIN  
      ( SELECT  supporter, 
                COUNT(supporter) AS amount
            FROM  Supports
            GROUP BY  supporter
            ORDER BY  amount DESC
            LIMIT  1 
      ) AS b;

暫無
暫無

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

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