New Feature: Playlist Center! Pick a topic and let our playlists guide the way.

Start learning with our library of video tutorials taught by experts. Get started

SQL Server 2008 Essential Training
Illustration by

Using aggregate functions


From:

SQL Server 2008 Essential Training

with Simon Allardice

Video: Using aggregate functions

Next up, we have a few more keywords to work with an SQL and these would be grouped under the idea of something called aggregate functions, which is a fairly unpleasant name for a very useful piece. Now we've seen already how we can do a simple select statement like this, SELECT * FROM SalesLT.Product, and this returns everything. All our columns, all our rows and in fact, I can see it's 295 rows either by scrolling down to the bottom of the results or just reading it here in the status bar. But what if that was the piece of information I wanted? What if I just wanted to know the answer was 295? We have 295 products.
Expand all | Collapse all
  1. 2m 21s
    1. Welcome
      1m 19s
    2. Using the exercise files
      1m 2s
  2. 17m 58s
    1. SQL Server core concepts
      9m 4s
    2. SQL Server editions
      3m 8s
    3. Applications included with SQL Server
      5m 46s
  3. 26m 1s
    1. Preparing for installation
      3m 44s
    2. Creating service accounts
      2m 33s
    3. Installing SQL Server
      11m 42s
    4. Post-installation checks
      3m 9s
    5. Installing sample databases
      4m 53s
  4. 13m 35s
    1. Introduction to SQL Server Management Studio
      8m 7s
    2. Introduction to SQL Server Books Online
      3m 6s
    3. SQL Server system databases
      2m 22s
  5. 1h 26m
    1. Planning your database
      9m 39s
    2. Creating a SQL Server database
      4m 7s
    3. Creating tables
      7m 51s
    4. Data types in SQL Server
      12m 25s
    5. Defining keys
      8m 9s
    6. Creating default values
      4m 39s
    7. Creating check constraints
      2m 25s
    8. Creating unique constraints
      4m 34s
    9. Introduction to relationships and foreign keys
      9m 51s
    10. Creating relationships in SQL Server Management Studio
      8m 14s
    11. Database normalization
      11m 47s
    12. Creating computed columns
      3m 10s
  6. 23m 11s
    1. Using the SQL Server Import and Export Wizard
      3m 58s
    2. Importing Excel files into SQL Server
      6m 11s
    3. Importing CSV files into SQL Server
      5m 27s
    4. Importing Access databases into SQL Server
      7m 35s
  7. 55m 29s
    1. Introduction to Transact-SQL
      3m 43s
    2. Using SELECT statements
      7m 16s
    3. Changing the default database
      2m 21s
    4. Creating conditions in SQL
      8m 10s
    5. Sorting your output
      3m 23s
    6. Using aggregate functions
      7m 12s
    7. Finding unique values
      2m 14s
    8. Joining multiple tables together
      8m 0s
    9. Using subqueries
      9m 33s
    10. Viewing execution plans
      3m 37s
  8. 19m 36s
    1. Writing INSERT statements
      5m 47s
    2. Writing UPDATE statements
      4m 38s
    3. Writing DELETE statements
      2m 54s
    4. Using the OUTPUT clause to return inserted keys and GUIDs
      6m 17s
  9. 32m 52s
    1. Introduction to SQL functions
      6m 26s
    2. Using SQL configuration functions
      2m 14s
    3. Using string functions
      7m 26s
    4. Using date functions
      6m 27s
    5. Creating user-defined functions
      10m 19s
  10. 28m 46s
    1. Introduction to stored procedures
      4m 23s
    2. Creating stored procedures
      11m 23s
    3. Introducing transactions
      4m 23s
    4. Creating transactions
      8m 37s
  11. 16m 39s
    1. Understanding and creating indexes
      6m 32s
    2. Monitoring and rebuilding indexes
      6m 0s
    3. Monitoring database size and integrity
      4m 7s
  12. 11m 41s
    1. Creating backups
      4m 21s
    2. Creating differential backups and using backup compression
      3m 40s
    3. Restoring databases
      3m 40s
  13. 17m 40s
    1. Introduction to SQL Server security and permissions
      5m 54s
    2. Adding a Windows user to the database
      5m 7s
    3. Creating SQL Server logins and switching authentication modes
      6m 39s
  14. 36m 41s
    1. Introduction to SQL Server Reporting Services
      2m 52s
    2. Connecting to the Report Manager
      4m 29s
    3. Using Report Builder
      12m 4s
    4. Formatting values in reports
      4m 17s
    5. Adding indicators to reports
      5m 11s
    6. Adding charts to reports
      3m 54s
    7. Working with report security
      3m 54s
  15. 24m 41s
    1. Introduction to SQL Server Integration Services (SSIS)
      1m 57s
    2. Using Business Intelligence Development Studio (BIDS)
      6m 59s
    3. Creating and executing a simple SSIS package
      7m 35s
    4. Importing packages into SQL Server Management Studio
      3m 21s
    5. Scheduling jobs with SQL Server Agent
      4m 49s
  16. 31s
    1. Goodbye
      31s

Watch this entire course now—plus get access to every course in the library. Each course includes high-quality videos taught by expert instructors.

Become a member
please wait ...
SQL Server 2008 Essential Training
6h 54m Beginner Dec 15, 2010

Viewers: in countries Watching now:

In SQL Server 2008 Essential Training, Simon Allardice explores all the major features of SQL Server 2008 R2, beginning with core concepts: installing, planning, and building a first database. Explore how Transact-SQL is used to retrieve, update, and insert information, and gain insight into how to effectively administer databases. The course also covers features outside SQL Server's database engine, including technologies that have grown up around it: SQL Server Reporting Services and Integration Services. Exercise files are included with the course.

Topics include:
  • Using T-SQL (Transact-SQL)
  • Managing databases with SQL Server Management Studio
  • Understanding database normalization
  • Using SELECT statements
  • Building indexes
  • Monitoring database size and integrity
  • Backing up and restoring databases
  • Creating functions and stored procedures
  • Managing database permissions
  • Creating and formatting reports
  • Adding charts to reports
  • Creating and executing a simple SSIS package
Subjects:
Business Developer Servers Databases
Software:
SQL Server
Author:
Simon Allardice

Using aggregate functions

Next up, we have a few more keywords to work with an SQL and these would be grouped under the idea of something called aggregate functions, which is a fairly unpleasant name for a very useful piece. Now we've seen already how we can do a simple select statement like this, SELECT * FROM SalesLT.Product, and this returns everything. All our columns, all our rows and in fact, I can see it's 295 rows either by scrolling down to the bottom of the results or just reading it here in the status bar. But what if that was the piece of information I wanted? What if I just wanted to know the answer was 295? We have 295 products.

I don't care about the rest of the data. Well, I can do that by using a piece of SQL called COUNT. And what I'm going to do is give it a little argument here, a little bit of information that says I want the count of everything. SELECT COUNT(*) FROM SalesLT.Product. Execute and it basically returns just that value, just 295. I can see that I don't have a column name for it. If it was important for me to have a column name, I could perhaps return it as TotalProducts and execute it that way, but that might be necessary if I was sending this SQL back to a developer. But this is all I need, SELECT COUNT(*).

Now occasionally I'm asked, is it really important that I have the star, for example? Because if all I was doing earlier was bringing back ProductID From SalesLT.Product, that's 295 as well. So couldn't I just say SELECT COUNT of ProductID, instead of COUNT(*), and you can in fact. If I do that I'll get the same result, 295. You just need to be careful here because star will always give you the count of everything.

If you pick another column, so if I was to pick Color, which is a column in the Product Table, and execute that, well, in this case I get 245 instead of 295 because what it's doing is it's ignoring any null values that might occur. So as a general rule if you want a count of everything, it's SELECT COUNT(*). You can of course also use WHERE clause, as if you want to restrict the results to where products have a color of red. I could just type that in and execute it.

I still got the count and in this case it's 38. Now sometimes however the count isn't what you want. If you're looking at some of the data that you have, in this case, I'm going to back to selecting everything, I can see that I have a lot of products and they're all split up with different list prices and standard costs and weight and so on. But what if I wanted to find out what the maximum ListPrice was? Well, I could do an ORDER BY with the top one or I could do something like this. use the word MAX.

Now in this case I wouldn't say MAX(*) because it's not the max of everything. I want the maximum of the column ListPrice, hit Execute on that, and it tells me the most expensive thing was 3578.27. Well, if we have MAX, it's a pretty good guess that we're also going to have MIN and we do, 2.29, and we also have AVG. Give us the average price and if you want to of course you can start to throw some of these together, using several of these aggregate functions to in this case return the maximum and the minimum and the average price of our products.

Again, I don't have to use the AS keyword here. I just think it's a bit more useful if you're doing multiple functions that return different columns to give them all names. Now depending on the kind of data that you're working with, these may be what you are looking for. For example, if I open up my AdventureWorksLT database, I know that I have things like SalesOrderDetails and SalesOrderHeaders. I am going to just quickly SELECT * FROM SalesOrderHeader and by scanning some of that information, I can find things like the TotalDue and SubTotal and Freight amount.

Well, let's say what I wanted to do is find the maximum amount of all our sales orders. Of course, we can use MAX as we've done a little earlier, but what we can also do here is use the word SUM. SUM, instead of just counting them, will total them all up. When some people new to SQL kind of get a little mixed up between SUM and COUNT. Remember that COUNT is just going to give us the number of rows that had something in them.

In this case 32 whereas SUM is going to take the TotalDue column and add them all together, and that's often very useful when you're working with financial data. Now going back to the Product Table, I'm going to start off with something quite simple. Now we've seen how we can use the word COUNT to get a total number of products or add the WHERE clause to filter that down.

Well, what if I wanted to have the counts grouped by color? It's quite a common thing that what people will try and do is they will say well, perhaps I can say SELECT COUNT(*), Color, and execute that, and the problem is you're going to get this message that it can't give you Color because Color is not part of an aggregate function. You get this wonderful phrase it is not contained in either an aggregate function or the GROUP BY clause. If you see this message that says the GROUP BY clause, that's kind of a little heads up.

There is another part of SQL that can probably give you what you're looking for. What I'd like to have here is the different counts for the products with different colors or grouped together and I don't want to run that as several different SQL statements. So this is the way you do that. I want both the COUNT and the Color, but I need to tell SQL Server that you need to group the results by color. Once this GROUP BY clause has been added, it will allow this first column to be retrieved in that statement.

I execute that, and this is what we get in return: 89 Black, 26 Blue, 1 Gray, 8 Multi and 50 other products that have a NULL value in the Color column. Now if you start to use things like GROUP BY, you can also use some of the other aggregate functions as well. So I could start to kind of mix them up here, say for example MAX (ListPrice) and we're still showing the color and grouping by color, and in which case we're getting the maximum list price for each color.

So, very useful ways of getting to the important parts of your data, simply by using some of these aggregate functions.

Find answers to the most frequently asked questions about SQL Server 2008 Essential Training.


Expand all | Collapse all
please wait ...
Q: I'm having problems installing the free Express R2 version of SQL Server on Windows XP. I tried 64-bit and 32-bit versions. In the videos, the author installs from a DVD. Do I need to do the same?
A: While the author installs from a DVD, it's not strictly necessary. There certainly shouldn't be a problem installing the Express edition from a regular download. That's the way it's intended to be installed.

If you're using Windows XP, the only officially supported version is the 32-bit version. However, you do need to make sure that your Windows XP install is completely up-to-date and patched, with XP Service Pack 3 installed. (See http://msdn.microsoft.com/en-us/library/ms143506.aspx#Express32 for formal requirements.)

It's not unusual for the install process to take a while, and with older operating systems like XP, you'll often have to back it out and try again, as usually there's a bunch of prerequisites that need to be installed. (Like the .NET Framework 3.5 SP1, the correct version of Windows Installer, etc.)
Q: The link to the installer for the AdventureWorks sample database, as shown in the Chapter 2 movie "Installing sample databases," no longer works. Where can I find the installer?
A: Microsoft has reorganized its site. The sample files are still there, but they're a bit harder to find. To install them:

1) Visit http://msftdbprodsamples.codeplex.com/.
2) Click the link to "SQL Server 2008 R2 OLTP."
3) Click the AdventureWOkrs2008R2 Data File link and agree to the conditions to download the MDF file.
4) Move the MDF file to your SQL Server Directory, usually located at C:\Program Files\Microsfot SQL Server\MSSQL 10_50.MSSQLSERVER\MSSQL\DATA.
5) Open the SQL Sever Management Studio and connect to your instance using an account with administrative privileges.
6) Attach the sample database by right-clicking the Databases folder in the Object Explorer and choosing Attach from the pop-up menu.
7) Click the Add button in the next menu and navigate to the MDF file in the Locate Database Files window that appears. Select it and click OK.
8) Remove the reference to the log file in the "AdventureWorks2008R2" database details: pane by selecting the Log entry and clicking removing.*
9) Click OK to return to SQL Server Management Studio and complete the attachment process.

*MDF files are the "data" files for SQL Server databases. They often come along with LOG files (ldf files). This one didn't so we need to REMOVE the reference to the non-existent log file. Select the second row in the lower section (it should say File Type: Log and Message: Not Found) and click the REMOVE button.

For an illustrated version of these instructions (with screenshots), click here for a PDF version.
 
Share a link to this course

What are exercise files?

Exercise files are the same files the author uses in the course. Save time by downloading the author's files instead of setting up your own files, and learn by following along with the instructor.

Can I take this course without the exercise files?

Yes! If you decide you would like the exercise files later, you can upgrade to a premium account any time.

Become a member Download sample files See plans and pricing

Please wait... please wait ...
Upgrade to get access to exercise files.

Exercise files video

How to use exercise files.

Learn by watching, listening, and doing, Exercise files are the same files the author uses in the course, so you can download them and follow along Premium memberships include access to all exercise files in the library.
Upgrade now


Exercise files

Exercise files video

How to use exercise files.

For additional information on downloading and using exercise files, watch our instructional video or read the instructions in the FAQ.

This course includes free exercise files, so you can practice while you watch the course. To access all the exercise files in our library, become a Premium Member.

join now Upgrade now

Are you sure you want to mark all the videos in this course as unwatched?

This will not affect your course history, your reports, or your certificates of completion for this course.


Mark all as unwatched Cancel

Congratulations

You have completed SQL Server 2008 Essential Training.

Return to your organization's learning portal to continue training, or close this page.


OK
Become a member to add this course to a playlist

Join today and get unlimited access to the entire library of video courses—and create as many playlists as you like.

Get started

Already a member?

Become a member to like this course.

Join today and get unlimited access to the entire library of video courses.

Get started

Already a member?

Exercise files

Learn by watching, listening, and doing! Exercise files are the same files the author uses in the course, so you can download them and follow along. Exercise files are available with all Premium memberships. Learn more

Get started

Already a Premium member?

Exercise files video

How to use exercise files.

Ask a question

Thanks for contacting us.
You’ll hear from our Customer Service team within 24 hours.

Please enter the text shown below:

The classic layout automatically defaults to the latest Flash Player.

To choose a different player, hold the cursor over your name at the top right of any lynda.com page and choose Site preferencesfrom the dropdown menu.

Continue to classic layout Stay on new layout
Exercise files

Access exercise files from a button right under the course name.

Mark videos as unwatched

Remove icons showing you already watched videos if you want to start over.

Control your viewing experience

Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.

Interactive transcripts

Click on text in the transcript to jump to that spot in the video. As the video plays, the relevant spot in the transcript will be highlighted.

Are you sure you want to delete this note?

No

Notes cannot be added for locked videos.

Thanks for signing up.

We’ll send you a confirmation email shortly.


Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

Keep up with news, tips, and latest courses with emails from lynda.com.

Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

   
submit Lightbox submit clicked
Terms and conditions of use

We've updated our terms and conditions (now called terms of service).Go
Review and accept our updated terms of service.