18.1. Aggregating Data

Say we want data about how many rides lasted longer than an hour. At this point we don’t care about where they started, or which bike they were on, we just want to know how many such rides there were. To ask for the total number of records a query finds, we can select COUNT(*).

The AS keyword is used after COUNT(*) to give the data that is returned a name. If we leave it off, the “column” of data will just be labeled COUNT(*). Calling it number_rides makes it much clearer what we are looking at.

How many trips started at station 31111?

Hint: Build your way to the final query. Start by selecting all the data (*) for all the trips. Then write a WHERE to only select ones that start from 31111. Finally, instead of selecting all of the columns, select just the count of the number of records.

COUNT is one of the aggregation functions provided by SQL. Aggregation is the process of combining data and COUNT combines all the records and tells us how many there are. But there are other ways we can aggregate data with SQL:

For example, the query below calculates the minimum and maximum trip duration:

Write a query to calculates the mean duration (average) of all trips.

You use WHERE filtering with aggregating functions. The query below calculates the longest trip duration just for trips made by Casual member type users.

Write a query to get the total duration (sum) of all trips taken on bike W01274.

18.1.1. Counting Unique Values

It is often helpful to not only count the number of rows, but count the number of unique values of a column. You can do this using the DISTINCT keyword.

To count the distinct values of a column, you can simply use COUNT along with DISTINCT. For example, the query below counts the number of bike numbers used.

System Message: ERROR/3 (/home/bmiller/Runestone/books/welcomecs/_sources/SQLGroupJoin/aggregating.rst, line 133)

Error in “activecode” directive: invalid option data: duplicate option “autograde”.

.. activecode:: sqlgroupjoin_aggregating8
    :language: sql
    :autograde: unittest
    :dburl: /_static/bikeshare.db
    :autograde: unittest


    Write a query to get the number of unique start locations there are in the table.
    ~~~~

    ====
    assert 0,0 == 140
You have attempted of activities on this page