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

# SQL for hourly totals for the last 48 hours

## SQL expert Rudy Limeback explains to an Oracle user how to user asks how to generate datetimes or use left outer join to get hourly totals for the last 48 hours in SQL.

I have a table with a datetime field. I would like to get an hourly summary from that table, which is easily achieved...

by using a 'group by'.

However, I would like the summary to include every hour within the last 48, even if no records exist for that hour. In this case it would simply return a zero for that hour. Any ideas?

We've seen this question--or ones very similar to it--before. However, it's been quite a while, so let's look at it again.

The solution relies on two techniques:

1. Generate the datetimes

This is done by using a numbers table. The query will use a table with the numbers from 0 to 47 in it. Each number is used as an interval value in a date expression, subtracting from a base datetime value. This generates the 48 datetime values that mark the groups for the purposes of the join.

2. LEFT OUTER JOIN to your data

The LEFT OUTER JOIN uses the 48 hourly datetime values as the "left" table, with your data as the "right" table, so that if no rows exist for a given hour, the aggregate functions will return zero because they ignore NULLs, and NULLs are what a LEFT OUTER JOIN produces for unmatched rows.

We start by taking the current datetime value and applying a "floor" or "truncate" technique to round it down to the nearest previous hour. In SQL, it can be done with an expression like this:

SELECT CURRENT_DATE + EXTRACT(HOUR FROM CURRENT_TIMESTAMP) HOUR

The EXTRACT function returns the current hour as an integer, e.g. 16 for 4 p.m. This number is then added, as an interval of hours, to the value of the current date, e.g. '2008-06-22'. The result is a timestamp for the beginning of the current hour, '2008-06-22 16:00:00'. Unfortunately, implementation varies from one DBMS to the next. In Oracle, you can instead simply TRUNC the SYSDATE value to the hour. In SQL Server, which has the GETDATE function for current timestamp but no equivalent CURRENT_DATE function, you can round down to the nearest previous hour like this:

Here '2000-01-01' is some arbitrary early "base date." The difference between this date and the current timestamp given by GETDATE(), as a number of whole hours, is added back to the base date, effectively rounding down to the nearest previous hour.

One satisfactory way to generate the 48 required numbers is to have an actual table of numbers:

SELECT n FROM numbers WHERE n BETWEEN 0 AND 47

Another way is to generate the numbers "on the fly" from a cross join of the integers table (the values 0 through 9) with itself:

SELECT 10 * t.i + u.i AS n FROM integers AS t CROSS JOIN integers AS u WHERE 10 * t.i + u.i BETWEEN 0 AND 47

Now we can use these 48 numbers as intervals to subtract from the starting hourly value, producing 48 hourly values. This is done in a subquery, which produces a derived table. The derived table becomes the left table in our LEFT OUTER JOIN to the data being summarized:

SELECT h.start_hour , SUM(mytable.amount) AS sum_amount FROM ( SELECT CURRENT_DATE + EXTRACT(HOUR FROM CURRENT_TIMESTAMP) HOUR - ( 10 * t.i + u.i ) HOUR AS start_hour FROM integers AS t CROSS JOIN integers AS u WHERE 10 * t.i + u.i BETWEEN 0 AND 47 ) AS h LEFT OUTER JOIN mytable ON mytable.datetimefield >= h.start_hour AND mytable.datetimefield < h.start_hour + 1 HOUR GROUP BY h.start_hour ORDER BY h.start_hour DESC
This was last published in May 2008

## Content

Find more PRO+ content and other member only offers, here.

#### 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

• ### NewSQL databases rise anew -- MemSQL, Spanner among contenders

The NewSQL database was almost hidden when Hadoop and NoSQL arose. Now, as more big data teams move toward production uses, ...

• ### Good data quality for analytics becomes an IT imperative

High-quality data is a must for analytics applications. That's driving more demand for data quality tools, but quality ...

• ### Data quality for big data should include a focus on usability

To help make big data analytics applications more effective, IT teams need to augment conventional data quality processes with ...

• ### Tableau data governance policies key to enterprise use

Data governance policies are key to effectively implementing Tableau and avoiding common pitfalls that can often affect ...

• ### Better Tableau implementation gives BI dashboards a boost

Building good Tableau dashboards is about more than just pretty visualizations. Users say the process should incorporate strong ...

• ### Tableau data visualization tool gets enterprise upgrade

Tableau is adding low-level capabilities to raise its software's standing above that of a data visualization tool for business ...

## SearchSAP

• ### SAP boosts data integration with SAP Data Hub and Vora

SAP Data Hub and Vora are both data integration tools, but Data Hub has a broad mission to manage data from different sources, ...

• ### User experience analytics tool helps Graybar improve support

Electric supply firm Graybar improved help desk operations and app performance for its SAP Suite on HANA system when it got the ...

• ### SAP promotes blockchain services, suggests IoT use cases

Blockchain use cases for business are still limited, but SAP believes the new SAP Leonardo Blockchain Co-innovation program will ...

## SearchSQLServer

• ### Dissect the SQL Server on Linux high availability features

SQL Server 2017 on Linux gives IT shops greater flexibility, but there are some limitations and changes to the way high ...

• ### Microsoft SQL Server 2017 for Linux hits GA, IT pros encouraged

Microsoft SQL Server 2017 becomes available in October. In addition to a version that runs on Linux, new features include support...

• ### SQL Server graph database tools map out data relationships

Get equipped to take advantage of the addition of graph database features in SQL Server 2017 to use graph structures to represent...

## TheServerSide.com

• ### Migrations to Oracle's Java SE 9 platform may be delayed

Oracle did a great job getting Java SE 9 released earlier this year, but modularity and various smaller updates may not be enough...

• ### Java 18.3 marks the future of Java at JavaOne 2017

At JavaOne 2017, Oracle identified four projects that will have a significant impact on the future of Java: Project Valhalla, ...

• ### How blockchain security is driving digital transformations

Whether it is a secure cloud, a secure mobile device or a secure IOT interaction, organizations are making blockchain security a ...

## SearchDataCenter

• ### Words to go: HCI platforms

Implementing HCI systems in the data center is a big undertaking for IT. Learn the basics of this emerging technology and its ...

• ### Software-defined memory trends yield speed, high performance

A new class of memory technologies is coming to the data center landscape. Educate yourself on the emerging tech, including tools...

• ### Explore uses for virtual data center architecture with VMC on AWS

The popularity of a virtual data center has risen because of the VMware Cloud on AWS announcement at VMworld 2017. But which ...

## SearchContentManagement

• ### Slack vs. Teams vs. Spark: Which is the best collaboration tool?

Ever wonder how the leading cloud collaboration tools stack up against each other? Our comprehensive chart pits platforms from ...

• ### Experts: Updating customer digital experience is a tall task

Gone are the days of a quick website launch. According to speakers at the Acquia Engage conference, redesigning a website is now ...

• ### Content personalization fuses marketing automation, content management

As the standards get higher for digital experiences, content personalization engines could be the answer for faster and better ...

## SearchFinancialApplications

• ### Finance IT case study: Reporting secrets of Derek Rose

CEO Sacha Rose says specialist reporting tools have saved the company thousands by avoiding unnecessary mistakes.

• ### WestJet turns to gamification to help its Oracle ERP users soar

WestJet's initial gamification project focuses on expense reporting.

• ### The Transformation of HR is Underway

HR is being transformed while we watch.

Close