2016-08-08 11 views
0
SELECT *, 
     DATE(date) AS post_day 
FROM notes 
WHERE MONTH(date) = '08' 
     AND userid = '2' 
     AND YEAR(date) = '2016' 
ORDER BY post_day DESC, 
      timestamp ASC 

このクエリでは、1日ごとに投稿をグループ化しています。日ごとの合計グループを計算する

私が苦労しているのは、毎日のすべてのノートの合計単語数を計算することです。各投稿の単語数を含む単語数の列があります。この合計を同じクエリで計算することは可能ですか、それとも別々に行う必要がありますか?テーブルの列によって

NoteID UserID Date Note WordCount 
+1

あなたの質問を編集し、サンプルデータと希望する結果を提供してください。 –

答えて

0

まず、group byクエリでselect *を使用しないでください。 select *は、集約には意味がありません。 。 。集計関数を適用する必要があります。上記のコードを使用して

SELECT DATE(date) as post_day, SUM(WordCount) 
FROM notes 
WHERE MONTH(date)= '08' AND userid = '2' AND YEAR(date)= '2016' 
GROUP BY DATE(date) 
ORDER BY post_day DESC, timestamp ASC 
+0

私もメモを返すことを望んでいます。集計だけでなく – user1829122

1
SELECT date, SUM(wordCount) AS monthWordCount 
    FROM Notes 
    WHERE userID = 2 
    AND MONTH(date) = '08' 
    AND YEAR(date) = '2016' 
    GROUP BY userID, date 

チェックアウトこのdemo

は、私はあなたがこのような何かをしたいと仮定します。

あなたにもノートを返すようにしたい場合は、以下のような副問合せを行うことができます。

SELECT noteID, userID, date, note, wordCount, 
    (SELECT SUM(wordCount) 
    FROM Notes 
    WHERE userID = a.userID 
    AND date = a.date 
    GROUP BY userID) AS dayTotalWordCount 
FROM Notes a 
WHERE a.userID = 102 
AND MONTH(date) = '08' 
AND YEAR(date) = '2016' 

ここでは、上記のコードを使用してdemoです。

関連する問題