Solved

non normalized table

Posted on 2014-01-26
7
343 Views
Last Modified: 2014-01-30
I have a non normalized table - I think that's the correct description.  I have a column that is a code that indicates the type of data that is contained in a second column, so let's say "code" and "value" are the column names.    I need the average of all value for each code returned in a single record.  I only need this for, say 3 specific codes, 11, 22, 33.  How can I do this?
0
Comment
Question by:HLRosenberger
7 Comments
 
LVL 13

Expert Comment

by:magarity
ID: 39810300
select code, avg(value) from table where code in (11,22,33) group by code
0
 
LVL 13

Expert Comment

by:magarity
ID: 39810308
PS - A 'denormalized' table is one where two or more normalized tables are combined.  For example, if 'code' in your example also has 'code long description' in this same table then that would be denormalized.  If code long description were in a lookup table, that would be normalized,
0
 
LVL 48

Expert Comment

by:PortletPaul
ID: 39810818
>>" returned in a single record. "

Why must it be returned as a single record?

(the solution provided above will produce 3 rows)
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 
LVL 69

Accepted Solution

by:
ScottPletcher earned 500 total points
ID: 39812202
SELECT
    AVG(CASE WHEN code = '11' THEN value END) AS code_11_avg,
    AVG(CASE WHEN code = '22' THEN value END) AS code_22_avg,
    AVG(CASE WHEN code = '33' THEN value END) AS code_33_avg
FROM dbo.tablename
WHERE
    code IN ( '11', '22', '33' )
0
 
LVL 13

Expert Comment

by:magarity
ID: 39812491
It's not clear either way that it's supposed to be a single record result set. That sentence doesn't parse well. The second query will do if that's the case.
0
 
LVL 31

Expert Comment

by:awking00
ID: 39812740
Perhaps some sample data and your expected output would help clarify. I think one of the two solutions provided will accomplish what you want. Assume the average value of code 11 is 5, and the average value of code 22 is 10, and the average value of code 33 is 15, the first produces
code value
11     5
22    10
33    15
and the second produces
11avgval  22avgval  33avgval
5              10             15
0
 
LVL 1

Author Closing Comment

by:HLRosenberger
ID: 39823205
thanks.
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Suggested Solutions

Title # Comments Views Activity
SQL Server 2008 R2 - Execution Plan 3 31
SQL Server memory Issue 7 76
Sql query 34 22
Square brackets 4 0
Introduction SQL Server Integration Services can read XML files, that’s known by every BI developer.  (If you didn’t, don’t worry, I’m aiming this article at newcomers as well.) But how far can you go?  When does the XML Source component become …
Everyone has problem when going to load data into Data warehouse (EDW). They all need to confirm that data quality is good but they don't no how to proceed. Microsoft has provided new task within SSIS 2008 called "Data Profiler Task". It solve th…
Using examples as well as descriptions, and references to Books Online, show the documentation available for date manipulation functions and by using a select few of these functions, show how date based data can be manipulated with these functions.
Viewers will learn how to use the UPDATE and DELETE statements to change or remove existing data from their tables. Make a table: Update a specific column given a specific row using the UPDATE statement: Remove a set of values using the DELETE s…

746 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now