MySQLのInnoDBテーブルに多数の投稿が保存されています。テーブルには、「id」、「date」、「user」、「content」という列があります。私はいくつかの統計グラフを作りたかったので、私は昨日の時間あたりの記事の量を取得するには、次のクエリを使用して終了:MySQLの1時間あたりの平均投稿数は?
SELECT HOUR(FROM_UNIXTIME(`date`)) AS `hour`, COUNT(date) from fb_posts
WHERE DATE(FROM_UNIXTIME(`date`)) = CURDATE() - INTERVAL 1 DAY GROUP BY hour
これは、次のようなデータ出力:
を私はこのクエリを編集して、いつでも好きな日にすることができます。しかし今私が望むのは、毎日の毎時の平均です。したがって、1日目の00時には20の投稿があり、2日目の私は40時には、出力が「30」になるようにします。可能であれば、日付期間も選択できるようにしたいと思います。
ありがとうございます!
なぜfrom(...)サブクエリの後に "s"を追加しますか? –
これはサブクエリのエイリアスです。これはMySQLでこのエラーを回避するために必要なものです。 'ERROR 1248(42000):すべての派生テーブルには別のエイリアスが必要です.' 'sub_query'のようなものを使いたい場合は、もっと冗長にすることができます。 –
ああ、そうだ。 Linoffのソリューションは非常に似ていましたが、これは私がSQLをもっと理解する助けとなりました。ありがとう! –