Skip to content
Advertisement

SQL Counting Rows based on break values

Frequently I need to do something in SQL Server that I just don’t know how to do properly.

Basically, if I have a table #sample that is like this:

DEPARTMENT DATE
ACCOUNTING A
FINANCE A
PAYROLL A
ACCOUNTING B
PAYROLL A
FINANCE A
PAYROLL B
PAYROLL C

I need to query that table to get an output that is this:

DEPARTMENT DATE DUPECHECK
ACCOUNTING A 1
ACCOUNTING B 2
FINANCE A 1
FINANCE A 1
PAYROLL A 1
PAYROLL A 1
PAYROLL B 2
PAYROLL C 3

In Oracle Hyperion Brio at my old job I used to create a column that value 1 for every row and writing a function Cume on that column with a break value of the column I needed to count.

In Excel, I could create a concatenated column that has my break values, and then do a countif(concat:concat,concat1) copy that formula down.

I feel like it should be something similar to this, but that’s not it at all:

ROW_NUMBER() OVER (PARTITION BY #sample.Department ORDER BY #sample.Date) DUPECHECK

Help me out?

Advertisement

Answer

As mentioned in the comments above, ROW_NUMBER() is part of the set of ranking functions.

For your purposes, you can use the DENSE_RANK():

DENSE_RANK() OVER(PARTITION BY #sample.Department ORDER BY #sample.Date)DUPECHECK
User contributions licensed under: CC BY-SA
1 People found this is helpful
Advertisement