2

私は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

でもどうやって参加したらいいのかわからない。

4

3 に答える 3

1

これを試して:

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
于 2013-01-01T08:53:25.277 に答える
0
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
于 2013-01-01T08:58:35.643 に答える
0

これを試して:

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
于 2013-01-01T09:01:35.267 に答える