Q
Problem solve Get help with specific problems with your technologies, process and projects.

# Aggregating time intervals

## How can I aggregate intervals? Given two timestamps (one for the beginning, the other for the end of an event) I would like to know the average duration of the event.

How can I aggregate intervals? What I'm trying to do is, given two timestamps (one for the beginning, the other for the end of an event) I would like to know the average duration of the event. What's the best way to do this?

Presumably you want the average duration for a number of events, not just one. For a single event, we obtain a...

duration by "subtracting" the beginning timestamp from the end timestamp. This requires date arithmetic, which can vary wildly from one database system to the next.

Before we get started, let's create some test data.

```create table events
( id  integer  not null primary key
, datetime_start  datetime not null
, datetime_end    datetime not null
);
insert into events values
( 1, '2006-09-09 14:00', '2006-09-09 16:00' )
,( 2, '2006-09-10 09:00', '2006-09-10 17:00' )
,( 3, '2006-09-11 13:30', '2006-09-11 14:45' )
,( 4, '2006-09-12 09:00', '2006-09-15 17:00' );```

As with any good set of test data, we should be able to work out the correct answer ourselves, ahead of time, and then try to come up with the SQL that will reproduce it. So, using good old paper and pencil, or a spreadsheet if desired, we construct the following:

```1. 0 days 2 hours 0 minutes =  120 minutes
2. 0 days 8 hours 0 minutes =  480 minutes
3. 0 days 1 hour 15 minutes =   75 minutes
4. 3 days 8 hours 0 minutes = 4800 minutes
----
total   5475 minutes
average  1368.75 minutes
=  22 hours 48.75 minutes ```

Now to produce the same results with SQL. First, we need to compute the difference between the start and end. Many database systems actually allow the use of ordinary arithmetic with datetimes (for example, SELECT somedatecol + 1 usually gives the next day), so let's try subtracting:

```select id
, datetime_start
, datetime_end
, datetime_end - datetime_start as diff
from events```

Here's what we get for this query in MySQL:

```id datetime_start    datetime_end         diff
1  2006-09-09 14:00  2006-09-09 16:00    20000
2  2006-09-10 09:00  2006-09-10 17:00    80000
3  2006-09-11 13:30  2006-09-11 14:45    11500
4  2006-09-12 09:00  2006-09-15 17:00  3080000```

And here's what we get in SQL Server:

```id datetime_start    datetime_end      diff
1  2006-09-09 14:00  2006-09-09 16:00  1900-01-01 02:00
2  2006-09-10 09:00  2006-09-10 17:00  1900-01-01 08:00
3  2006-09-11 13:30  2006-09-11 14:45  1900-01-01 01:15
4  2006-09-12 09:00  2006-09-15 17:00  1900-01-04 08:00```

Weird, eh? In MySQL, we get a "formatted" integer, and in SQL Server, we get a new (albeit ancient) datetime value. But can we average these differences?

```select avg(
datetime_end - datetime_start
) as avg_diff
from events```

In MySQL we get 797875, which is clearly wrong. In SQL Server, we get "Operand data type datetime is invalid for avg operator."

What does this imply? Simply that when using an aggregate function like AVG(), we must ensure that we are actually aggregating something meaningful.

One solution is to convert each interval to a numerical "common denominator" as we did with the spreadsheet data. This may be easier in some database systems than others. As always, the trick is to know your functions and pick the appropriate ones. Here, for example, is the MySQL solution:

```select sec_to_time(
avg(
unix_timestamp(datetime_end)
- unix_timestamp(datetime_start)
) ) as avg_diff
from events

avg_diff
22:48:45 ```

We'll leave the solution for SQL Server, and other database systems, as an EFTS (exercise for the student). Good luck!

This was last published in July 2006

#### Have a question for an expert?

Get answers from a TechTarget expert on whatever's puzzling you.

You will be able to add details on the next page.

#### Start the conversation

Send me notifications when other members comment.

## SearchDataManagement

• ### Chief data officer role: Searching for consensus

The chief data officer role is about many things -- regulations, innovation, AI and more. Consultant Randy Bean discussed the ...

• ### How graph data modeling can help evaluate database tools

Mapping data to a graph model can be challenging -- but it can also help an organization create prototypes to evaluate graph ...

• ### eHarmony hooks up with Redis NoSQL database for hot storage

The Redis key-value store finds use in a system to match would-be romantic partners on dating site eHarmony, which employs a ...

• ### Heat map view sets table for food warehouse optimization

Inspired by the vivid views of stadium heat maps, a Midwest food distributor worked with Information Builders to gain a better ...

• ### Streamlining predictive analytics in retail marketing

Online flash-sale retailer Zulily uses BigQuery and Tableau to help power its predictive analytics, which, in turn, boosts its ...

• ### Airbnb, Univision highlight best practices in BI

At the Real Business Intelligence conference, Airbnb and Univision execs presented some of the BI strategies their organizations ...

## SearchSAP

• ### On-premises, hosted most popular S/4HANA deployment options

The pure cloud -- SaaS -- version of SAP's newest ERP, S/4HANA Cloud, lacks some of the same features of the on-premises version....

• ### S/4HANA public cloud version can get lost in cloud confusion

The 'true' public cloud is the streamlined SaaS version of on-premises S/4. But private cloud options are often conflated with ...

• ### SAP S/4HANA migration: What you need to know

There's a lot to consider when contemplating a move to SAP S/4HANA, and this essential guide provides a starting point, including...

## SearchSQLServer

• ### A quick tutorial on SQL Server maintenance plans

SQL Server maintenance plans get a bad rap, but for DBAs who need a simple way to maintain databases, Microsoft's built-in tools ...

• ### Proposed Microsoft-GitHub buy confirms open source role in cloud

The looming Microsoft-GitHub pairing confirms the company's rebirth as an open source friend. Data tools on the Azure cloud are ...

• ### Common Data Service for Analytics eases Power BI integration

Integrating data into Power BI for analysis can be a challenge, but Microsoft's Common Data Service for Analytics technology is ...

## TheServerSide.com

• ### Attain Jenkins Git integration with a GitHub pull request

This Jenkins Git integration tutorial demonstrates how to create a freestyle build job that performs a Jenkins GitHub pull ...

• ### Financial firms, vendors push self-service software delivery

Self-service DevOps automation appeals to enterprises that must push out new code as they adapt to changing requirements.

• ### IT projects and software teams need to include Agile people

Not every idea deserves equal weight in a software development project, but Agile people know that garnering input from a wide ...

## SearchDataCenter

• ### Rackspace colocation program hosts users' legacy servers

Rackspace now has a managed colocation program that it hopes to upsell its customers with additional services, once their servers...

Broadcom has acquired CA Technologies in a move some believe is largely financially motivated, while others see an opportunity ...

• ### Ten Linux process management commands that simplify admin workflows

If you work in Linux, chances are you have to do some process management. Here are some commands to simplify that workflow.

## SearchContentManagement

• ### Endpoint security tool fueled OpenText's Guidance Software acquisition

Endpoint security was the primary draw for OpenText's Guidance Software acquisition. But plans to improve e-discovery and data ...

• ### Digital transformation benefits follow a not-so-fast track

Choosing among the many digital transformation strategies in the content management sphere is not easy but can pay off when ...

• ### Customers, vendors differ on digital transformation definition

Digital transformation may be the talk of the analyst sphere and the marketing domain, but people using the technology aren't ...

## SearchHRSoftware

• ### Automated recruiting solves Groupon's sourcing talent woes

Building a talent pool through effective sourcing is a major effort by Groupon. It is using a recruiting automation tool to find ...

• ### New HR tools for hourly workers, employee retention announced

This week's news roundup includes an HR tool designed just for hourly workers, a new offering from Limeade to help with talent ...

• ### Eight human capital management functions every HR department needs

Employee self-service and wellness portals are no longer enough. Now, you need a multipronged strategy that tackles the most ...

Close