Q

# Row calculations using a derived table

My Cross Tab query is:

```select count(*)                  as Total
, sum( case when Prov = 'AB'
then Quantity else 0 end ) as AB
, sum( case when Prov = 'BC'
then 1 else 0 end ) as BC
from mytable```

Is it possible to achieve an output like this?

```Total  AB  BC  Others
150   75  25   25```

Yes.

In your example, you sum Quantity for the AB count, but 1s and 0s for the BC count. Also, your example doesn't add up (150-75-25 does not equal 25). I shall assume these were typos, and just answer the issue of calculating the Others column.

One way to do it is to use another CASE expression:

```select count(*)                  as Total
, sum( case when Prov = 'AB'
then 1 else 0 end ) as AB
, sum( case when Prov = 'BC'
then 1 else 0 end ) as BC
, sum( case when Prov in ('AB','BC')
then 0 else 1 end ) as Others
from mytable```

To avoid the unnecessary extra CASE evaluation and summing, you can "reuse" the expressions already being calculated:

```select count(*)                  as Total
, sum( case when Prov = 'AB'
then 1 else 0 end ) as AB
, sum( case when Prov = 'BC'
then 1 else 0 end ) as BC
, count(*)
- sum( case when Prov = 'AB'
then 1 else 0 end )
- sum( case when Prov = 'BC'
then 1 else 0 end ) as Others
from mytable```

If the optimizer is any good, it will recognize those individual terms and not calculate them twice.

Some databases might allow you use a column alias elsewhere in the query after it's been defined, but I personally would not rely on this. So the above query would simplify to:

```select count(*)                  as Total
, sum( case when Prov = 'AB'
then 1 else 0 end ) as AB
, sum( case when Prov = 'BC'
then 1 else 0 end ) as BC
, Total-AB-BC   as Others
from mytable```

The slickest approach, which has the advantage that it avoids all unnecessary CASE evaluations and summing, is to use a derived table:

```select Total, AB, BC, Total-AB-BC as Others
from ( select count(*)               as Total
, sum( case when Prov = 'AB'
then 1 else 0 end ) as AB
, sum( case when Prov = 'BC'
then 1 else 0 end ) as BC
from mytable )```

Neat, eh?

This was last published in May 2003

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

• ### Amazon ushers in pay-by-query pricing with Athena data engine

Amazon's Athena data engine brings interactive SQL queries to S3. It's based on an open source framework that Teradata and others...

• ### A look at the EnterpriseDB Postgres data management platform

The EDB Postgres platform, which is based on the PostgreSQL open source relational database, is offered as a subscription service...

• ### Louisiana uses GIS software to create map to flood preparedness

The Louisiana Department of Health responded to flooding with the help of GIS software that located trouble spots with at-risk ...

• ### Creative projects leave people guessing about future impact of AI

A push is underway to write creative AI algorithms that can engage in music, film and design projects. So far, they have ...

• ### Data visualization plays an important role in a big data environment

Enterprises are increasingly putting data visualization tools, like Tableau, at the top of their big data platforms to start ...

## SearchSAP

• ### Does SAP ONE Support Launchpad make SAP support any easier to use?

The new Fiori user experience makes it easier to access applications and support services, but product-specific support still ...

• ### At SME Summit, SAP Anywhere growing pains revealed

Attendees at an SAP SME Summit lauded the e-commerce front end, but some said back-end integration and payment-processing ...

• ### Planning a HANA big data strategy with SAP HANA Vora

SAP has worked hard to position HANA as a big data platform. To formulate a viable big data strategy, you need to know the tools,...

## SearchSQLServer

• ### How to get the most out of virtual SQL Server with Microsoft Hyper-V

SQL Server is a CPU-intensive technology, which can make it tricky to run in a virtualized environment. Keep your SQL Server ...

• ### Microsoft previews SQL Server on Linux, opens features across editions

Microsoft looks to broaden the horizons of SQL Server, as it moves some Enterprise features to Standard Edition and issues the ...

• ### Cask framework aims to speed Azure HDInsight data pipeline builds

A link between Cask Data's CDAP application and integration environment and Azure HDInsight, Microsoft's Hadoop cloud service, is...

## TheServerSide

• ### How to turn your DevOps failures into ALM successes

Doing the right thing doesn't always mean you're doing things right. But don't fret, because short-term DevOps failures can mean ...

• ### From chatbots to IBM's Watson: How software deals with conversational language

The next big thing in software development is conquering the conversational language development hurdle. Here's how the big ...

• ### Getting through the three toughest stages of a DevOps transition

Looking to gain increased productivity and software quality by embracing DevOps? Here are the DevOps transitions your company ...

## SearchDataCenter

• ### Compare benefits of a blade server architecture vs. hyper-convergence

To determine if a series of blade servers is the right call for more condensed compute in your data center, evaluate its benefits...

• ### A hyper-converged data center offers SDDC opportunity, IT scalability

Hyper-convergence can increase scalability and pave the way toward software-defined infrastructure. Use these five tips to learn ...

• ### OpenStack enterprise adoption still awaits full embrace

OpenStack in the enterprise is more likely to see continued adoption via vendor distributions and managed services, not the raw ...

## SearchContentManagement

• ### Five steps for designing an effective BI dashboard

The BI dashboard can be a very useful tool for data engagement if the dashboard is designed and used effectively. Here are five ...

• ### Examining the top offerings in the WCM platform marketplace

Once you've decided that a WCM platform is right for your business, it's time to decide which to choose. Expert Geoffrey Bock ...

• ### Why Microsoft Teams could change up the collaboration software market

Microsoft's new collaboration tool, Teams, could give Slack a run for its money. Expert Reda Chouffani offers a look at five ...

## SearchFinancialApplications

• ### No one-size-fits-all strategy for cloud ERP software migration

Experts say a cloud ERP transition plan will vary according to a variety of factors, from company size to an organization's ...

• ### HR video apps spreading beyond training to recruiting, engagement

Users say cost savings, faster turnaround and better corporate branding are some of the benefits from using video at more stages ...

• ### Microsoft picks SAP for core HCM tools and global talent management

Microsoft chooses SAP SuccessFactors for core HR and talent management, and SAP selects Microsoft Azure as a preferred public ...

Close