相关表中的SUM时间值

时间:2013-12-04 09:09:40

标签: mysql sql

我在MySQL数据库中有两个表,事件和约会。每个约会都有一个字段event_id,一个start_time和一个end_time列。

我正在尝试设置一个查询,该查询会以分钟为单位向我提供事件ID及其总预约时间。例如,如果某个事件有两个约会,并且具有以下详细信息:

  1. 从10:00:00开始,在11:30:00结束
  2. 从12:30:00开始,在13:15完成
  3. 然后该事件的约会列将显示为135。

    我知道如何对约会进行简单计算,但在解决时间方面我有点困惑。这是我到目前为止所做的:

    SELECT
    events.id AS event_id,
    (SELECT COUNT(id) FROM appointments WHERE event_id = events.id) AS appointment_count
    FROM events
    

    任何建议表示赞赏。

    感谢。

2 个答案:

答案 0 :(得分:0)

试试这个

SELECT A.*,count(B.*) as count
FROM table_event A
JOIN table_appointment B ON A.event_id = B.event_id
GROUP BY B.event_id 

答案 1 :(得分:0)

尝试这样的事情:

SELECT e.name, ap.event_id,
sum((TIME_TO_SEC(end_time) - TIME_TO_SEC(start_time))/60) AS dif
FROM events e LEFT JOIN appointment ap ON e.id = ap.event_id
GROUP BY e.name, ap.event_id
ORDER BY 2;

<强> Example..