これはSQLに関してはちょっとノービーです。実際には非常にそうです。だから、もしこれが自明であれば、私は謝罪します。SQL:Previous AVG()を設定するときにカラムが空になる
は、私は、データベースから3つの事を(この表が送られたすべてのメッセージのログです)を見つけるためにしようとしています:
- 合計返信時間10分の下にあった回答の
- 合計#
-
:平均返信時間SELECT *, SUM(case when tmp.reply_time <= 10 then 1 else 0 end) as under_10_mins, COUNT(tmp.reply_time) AS total_replies FROM (SELECT TIMESTAMPDIFF(MINUTE, `date`, reply_date) as reply_time FROM tme_email_staff_reply sr JOIN tme_user u ON u.id = sr.staff_id JOIN tme_email_message m ON m.id = sr.message_id WHERE `reply_date` >= '2017-04-01 00:00:00' AND `reply_date` < '2017-04-27 00:00:00' ) AS tmp
ここ
は私のSQLです
| reply_time | under_10_mins | total_replies |
| 106 | 165 | 375 |
を今、私は追加するとき:出力
SELECT
*, SUM(case when tmp.reply_time <= 10 then 1 else 0 end) as under_10_mins,
COUNT(tmp.reply_time) AS total_replies
FROM
(SELECT
TIMESTAMPDIFF(MINUTE, `date`, reply_date) as reply_time,
(AVG(TIMESTAMPDIFF(SECOND, `date`, reply_date))/60) AS average_reply_time
FROM
tme_email_staff_reply sr
JOIN
tme_user u
ON
u.id = sr.staff_id
JOIN
tme_email_message m
ON
m.id = sr.message_id
WHERE
`reply_date` >= '2017-04-01 00:00:00'
AND
`reply_date` < '2017-04-27 00:00:00'
)
AS tmp
私の応答は次のとおりです。
| reply_time | average_reply_time |under_10_mins | total_replies |
| 106 | 149.08626667 | 0 | 1 |
あなたが見ることができるように、under_10_minsとtotal_repliesフィールドが変更されました。
リンクされたテーブルのスキーマ:
tme_email_staff_reply:
id | staff_id | message_id | reply_date |
1 | 234,221,001 | 15fg16d5dgw2 | 2017-04-01 09:34:16 |
tme_user
id | username | password | email | dob | gender |
// data omited
tme_email_message
id | thread_id | From | To | subject | message | message_id
// data omited
これはなぜそうだと誰に教えてもらえますか?それを修正する方法は?
テーブルのスキーマは何ですか? –
@SloanThrasher - 1秒が追加されます。 – JamesG