簡體   English   中英

在MySQL中的兩個表之間按日期對結果分組計數

[英]Group count results by date between two tables in mysql

我有2個不同的表格,用戶和投票。 我想查詢一個按日期統計用戶總數和總投票數(而不是總數)的查詢。 用戶

id | created_at

id | created_at

我希望結果看起來像這樣:

date       | total users | total votes
2012-06-01 | 50          | 90
2012-06-01 | 23          | 0*
2012-06-01 | 80          | 12

*應考慮到有些日子沒有投票

我知道如何進行2個單獨的查詢

SELECT DATE(created_at), count(id)
FROM vote
GROUP by DATE(created_at)
ORDER by DATE(created_at) DESC

但我不知道如何加入他們。

嘗試這個:

SELECT
  DATE(created_at),
  SUM(CASE WHEN `Type` = 'Votes' THEN 1 ELSE 0 END) AS 'TotalVotes',
  SUM(CASE WHEN `Type` = 'Users' THEN 1 ELSE 0 END) AS 'TotalUsers'
FROM
(
    SELECT created_at, 'Votes' `Type` FROM vote
    UNION ALL
    SELECT created_at, 'Users'        FROM Users
) t
GROUP by DATE(created_at)
ORDER by DATE(created_at) DESC
SELECT DATE(created_at),SUM(usercolumnname) as totalusers,
SUM(//votescolumnname) as totalvotes from users u,votes v
where u.date=v.date
GROUP BY u.DATE(created_at)
ORDER BY u.DATE(created_at) DESC

嘗試這個:

SELECT created_at, SUM(votes) AS 'TotalVotes', SUM(users) AS 'TotalUsers'
FROM(SELECT DATE(created_at) created_at, COUNT(ID) votes, 0 users 
      FROM votes GROUP BY DATE(created_at)
     UNION 
     SELECT DATE(created_at) created_at, 0 votes, COUNT(ID) users 
     FROM Users GROUP BY DATE(created_at)) t
GROUP BY created_at
ORDER BY created_at DESC

暫無
暫無

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

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