これは複雑な問題であるか、私はちょっとしたことがほんとうに不足しているかどうかは分かりませんが、これを理解できません。MySQL - ある列でMAX()を使用し、残りの行からデータを返しますか?
私はエラーメッセージと、彼らが出演した時間を示す表があります。
id created_at content
1 2017-08-05 08:00 ...
2 2017-08-15 16:00 ...
3 2017-08-15 16:01 ...
4 2017-08-15 16:02 ...
5 2017-08-25 16:00 ...
Iグループこれらの行は、一緒に日付と時間に基づいており、登場どのように多くのエラーカウント:
SELECT DATE_FORMAT(created_at, '%d.%m. %h'),
COUNT(*) AS errorCount
FROM db.errorData
GROUP BY DAY(created_at), HOUR(created_at);
結果のをこの内:
created_at errorCount
2017-08-05 08 1
2017-08-15 16 3
2017-08-25 16 1
今すぐ使ってみたいMAX()
o最高のerrorCountを取得します。私は副選択でこれを行う:
SELECT MAX(errorCount) AS errorMax
FROM(
SELECT DATE_FORMAT(created_at, '%d.%m. %h'),
COUNT(*) AS errorCount
FROM db.errorData
GROUP BY DAY(created_at), HOUR(created_at)
) alias;
しかし、私はまた、ほとんどのエラーで一日の日付を取得したいです。単にcreated_at
を最初のSELECTに追加するだけでは、最初の行の値しか返されないため、機能しません。
この作業を今すぐ行う方法がわかりません。あなたは私を助けることができます?あなたは、単にそれがエラーに関する問い合わせや注文の最後にlimit 1
を追加することができます
エラーが1日以上ある場合は、どのように結果を求めますか? –