ための "グループ機能の不正利用" 私はこのスキーマを使用してデータベースを有する:TRUNCATE(SUM())/ TIMESTAMPDIFFクエリ
ポスト(ID:整数、のcreated_at:日時、deleted_at:日時)
を posts_reasons(post_idの整数、はreason_id:整数)
理由(ID:整数、重量:整数)
I 0との間の平均時間を見つけるために探していとposts.deleted_at
(も削除までの時間として知られている)いくつかのサンプルの結果は、これらの線に沿ってあるかもしれない10の範囲でreasons.weight
のSUMとポストのグループごと:
Total Reason Weight (groups of 10) | Average Time To Deletion
--------------------------------------+----------------------------
0 | 987.36
10 | 872.01
20 | 819.34
30 | 742.77
のように。私は、削除する時間が異常値を避けるために1時間/ 3600秒より長い投稿を除外しています。
これは、これまで私が持っているクエリです:
SELECT
TRUNCATE(SUM(reasons.weight), -1) AS 'Reasons Weight',
AVG(TIMESTAMPDIFF(SECOND, posts.created_at, posts.deleted_at)) AS 'Avg Time To Deletion'
FROM
posts
INNER JOIN posts_reasons ON posts_reasons.post_id = posts.id
INNER JOIN reasons ON reasons.id = posts_reasons.reason_id
GROUP BY
posts.id,
TRUNCATE(SUM(reasons.weight), -1)
HAVING
posts.deleted_at IS NOT NULL AND
TIMESTAMPDIFF(SECOND, posts.created_at, posts.deleted_at) <= 3600
ORDER BY
TRUNCATE(SUM(reasons.weight), -1) ASC;
私は特定の問題があることをどのように一般的な与えられた、私はWHERE句で集計機能を持っていないことを確認してください作りました。また、クエリがposts.id
にグループ化されていることを確認して、SUM(reasons.weight)
集合体を正しく動作させるようにしました。
私はまだ「グループ機能の無効な使用」エラーが発生しています。これを解決するために何をする必要がありますか?
しかし、私は*合計*理由の重量(理由重みのすなわち合計)の10のグループを探しています、個人の体重ではありません。 – ArtOfCode
次にサブクエリを使用します。そこに、更新 – Pred