SELECT * (All Columns) in a Table
SELECT Specific Columns in a Table
Place your Commas in front for better Debugging Capabilities
Sort the Data with the ORDER BY Keyword
ORDER BY Defaults to Ascending
Use the Name or the Number in your ORDER BY Statement
Two Examples of ORDER BY using Different Techniques
Changing the ORDER BY to Descending Order
NULL Values sort First in Ascending Mode (Default)
NULL Values sort First in Descending Mode (DESC)
Multiple Sort Keys using Names vs. Numbers
Sorts are Alphabetical, NOT Logical
Using A CASE Statement to Sort Logically
A Missing Comma can by Mistake become an Alias
Comments using Double Dashes are Single Line Comments
Comments for Multi-Lines as Double Dashes Per Line
The WHERE Clause limits Returning Rows
Double Quoted Aliases are for Reserved Words and Spaces
Character Data needs Single Quotes in the WHERE Clause
Character Data needs Single Quotes, but Numbers Don’t
Comparisons against a Null Value
NULL means UNKNOWN DATA so Equal (=) won’t Work
Use IS NULL or IS NOT NULL when dealing with NULLs
NULL is UNKNOWN DATA so NOT Equal won’t Work
Use IS NULL or IS NOT NULL when dealing with NULLs
Using Greater Than or Equal To (>=)
Troubleshooting Character Data
Using Different Columns in an AND Statement
Quiz – How many rows will return?
Answer to Quiz – How many rows will return?
What is the Order of Precedence?
Using Parentheses to change the Order of Precedence
Using an IN List in place of OR
The IN List is an Excellent Technique
IN List vs. OR brings the same Results
The IN List Can Use Character Data
Null Values in a NOT IN List Bring Back No Rows
A Technique for Handling Nulls with a NOT IN List
LIKE uses Wildcards Percent ‘%’ and Underscore ‘_’
LIKE command Underscore is Wildcard for one Character
LIKE Command Works Differently on Char Vs Varchar
LIKE Command on Character Data
Quiz – What Data is Left Justified and What is Right?
Numbers are Right Justified and Character Data is Left
Answer – What Data is Left Justified and what is Right?
An Example of Data with Left and Right Justification
A Visual of CHARACTER Data vs. VARCHAR Data
Use the TRIM command to remove spaces on CHAR Data
Escape Character in the LIKE Command changes Wildcards
Escape Characters Turn off Wildcards in the LIKE Command
ANSWER – To Find that Wildcard
Quiz – How many rows come back from the Distinct?
Answer – How many rows come back from the Distinct?
Quiz – You calculate the Answer Set in your own Mind
Answer – You calculate the Answer Set in your own Mind
Quiz – You calculate the Answer Set in your own Mind
Answer – You calculate the Answer Set in your own Mind
Quiz – How many rows come back?
Answer – How many rows come back?
GROUP BY delivers one row per Group
GROUP BY Dept_No Works GROUP BY 1 Fails
Limiting Rows and Improving Performance with WHERE
WHERE Clause in Aggregation limits unneeded Calculations
Keyword HAVING tests Aggregates after they are Totaled
Keyword HAVING is like an Extra WHERE Clause for Totals
Keyword HAVING tests Aggregates after they are Totaled
Getting the Average Values Per Column
Average Values Per Column For all Columns in a Table
A Two-Table Join Using Traditional Syntax
A two-table join using Non-ANSI Syntax with Table Alias
A two-table join using A Different Syntax
You Can Fully Qualify All Columns
A two-table join using ANSI Syntax
Both Queries have the same Results and Performance
Quiz – Can You Finish the Join Syntax?
Answer to Quiz – Can You Finish the Join Syntax?
Quiz – Can You Find the Error?
Answer to Quiz – Can You Find the Error?
Super Quiz – Can You Find the Difficult Error?
Answer to Super Quiz – Can You Find the Difficult Error?
Quiz – Which rows from both tables won’t Return?
Answer to Quiz – Which rows from both tables Won’t Return?
RIGHT OUTER JOIN Example and Results
Which Tables are the Left and which Tables are Right?
Answer - Which Tables are the Left and which are the Right?
INNER JOIN with Additional AND Clause
ANSI INNER JOIN with Additional AND Clause
ANSI INNER JOIN with Additional WHERE Clause
OUTER JOIN with Additional WHERE Clause
OUTER JOIN with Additional AND Clause
OUTER JOIN with Additional AND Clause Results
Quiz – Why is this considered an INNER JOIN?
Evaluation Order for Outer Queries
The DREADED Product Join Results
The Horrifying Cartesian Product Join
The ANSI Cartesian Join will ERROR
Quiz – Do these Joins Return the Same Answer Set?
Answer – Do these Joins Return the Same Answer Set?
The Self Join with ANSI Syntax
Quiz – Will both queries bring back the same Answer Set?
Answer – Will both queries bring back the same Answer Set?
Quiz – Will both queries bring back the same Answer Set?
Answer – Will both queries bring back the same Answer Set?
How would you Join these two tables?
An Associative Table is a Bridge that Joins Two Tables
Quiz – Can you write the 3-Table Join?
Answer to Quiz – Can you Write the 3-Table Join?
Quiz – Can you write the 3-Table Join to ANSI Syntax?
Answer – Can you Write the 3-Table Join to ANSI Syntax?
Quiz – Can you Place the ON Clauses at the End?
Answer – Can you Place the ON Clauses at the End?
The 5-Table Join – Logical Insurance Model
Quiz - Write a Five Table Join Using ANSI Syntax
Answer - Write a Five Table Join Using ANSI Syntax
Quiz - Write a Five Table Join Using Non-ANSI Syntax
Answer - Write a Five Table Join Using Non-ANSI Syntax
Quiz –Re-Write this putting the ON clauses at the END
Answer –Re-Write this putting the ON clauses at the END
The Nexus Query Chameleon Writes the SQL for Users.
Extracting the Day, Month, Year From the SYSDATE
Extracting From the Current_Timestamp
Using the ADD_MONTHS Command to Add Years
Calculating the Days Until the End of the Month
Calculating the Months Between Two Dates
NEXT_DAY Command Finds a Future Day of the Week
How to Get the Difference in Hours
Add or Subtract Days Plus Format Dates and Dollars
A Summary of Math Operations on Dates
How a Simple Interval Handles Leap Year
Troubleshooting Intervals – Invalid Dates Error
Quiz – How did the Row_Number Reset?
Quiz – How did the Row_Number Reset?
Using a Derived Table and Row_Number
RANK Defaults to Ascending Order
Getting RANK to Sort in DESC Order
PERCENT_RANK() OVER with 14 rows in Calculation
PERCENT_RANK OVER with 21 rows in Calculation
CSUM – Rows Unbounded Preceding Explained
CSUM – Making Sense of the Data
CSUM – Making Even More Sense of the Data
CSUM – The Major and Minor Sort Key(s)
The ANSI CSUM – Getting a Sequential Number
Reset with a PARTITION BY Statement
PARTITION BY only Resets a Single OLAP not ALL of them
CURRENT ROW AND UNBOUNDED FOLLOWING
Moving Sum has a Moving Window
How ANSI Moving SUM Handles the Sort
Quiz – How is that Total Calculated?
Answer to Quiz – How is that Total Calculated?
Moving SUM every 3-rows Vs a Continuous Average
Partition By Resets an ANSI OLAP
The Moving Window is Current Row and Preceding
Moving Average Using a CAST Statement
Moving Average every 3-rows Vs a Continuous Average
Partition By Resets an ANSI OLAP
Moving Difference using ANSI Syntax
Moving Difference using ANSI Syntax with Partition By
COUNT OVER for a Sequential Number
COUNT OVER Without Rows Unbounded Preceding
Quiz – What caused the COUNT OVER to Reset?
Answer to Quiz – What caused the COUNT OVER to Reset?
MAX OVER with PARTITION BY Reset
MAX OVER Without Rows Unbounded Preceding
MIN OVER Without Rows Unbounded Preceding
MIN OVER Using PARTITION BY to Reset
Finding a Value of a Column in the Next Row with MIN
The CSUM For Each Product_Id and the Next Start Date
Using Quantiles (Partitions of Four)
FIRST_VALUE After Sorting by the Highest Value
FIRST_VALUE Combined with Row_Number
FIRST_VALUE And Row_Number with Different Sort
LEAD to Find the First Occurrence
Using LEAD With an Offset of 2
There are two types of Temporary Tables
Creating Multiple Derived Tables in the WITH Command
Creating Multiple Derived Tables in the WITH Command
The Same Derived Query shown Two Different Ways
Most Derived Tables Are Used To Join To Other Tables
The Three Components of a Derived Table
Our Join Example With A Different Column Aliasing Style
Column Aliasing Can Default For Normal Columns
Our Join Example With The WITH Syntax
Answer to Quiz - Answer the Questions
Clever Tricks on Aliasing Columns in a Derived Table
An Example of Two Derived Tables in a Single Query
Example of Two Derived Tables in a Single WITH Statement
WITH RECURSIVE Derived Table Hierarchy
WITH RECURSIVE Derived Table Query
WITH RECURSIVE Derived Table Definition
WITH RECURSIVE Derived Table Seeding
WITH RECURSIVE Derived Table Looping
WITH RECURSIVE Derived Table Looping in Slow Motion
WITH RECURSIVE Derived Table Looping Continued
WITH RECURSIVE Derived Table Looping Continued
WITH RECURSIVE Derived Table Ends the Looping
WITH RECURSIVE Derived Table Definition
WITH RECURSIVE Final Answer Set
Creating and Populating a Global Temporary Table
Global Temporary Table Definitions Persist
Vital Information about Global Temporary Tables
Creating and Populating a Global Temporary Table
Creating a Global Temporary Table Using a CTAS
Creating a Global Temporary Table Using a CTAS Join
Creating a Temporary Table from Another's Space
A Global Temp Table That Populates Some of the Rows
A Temporary Table with Some of the Columns
Chapter 8 – Sub-query Functions
An IN List is much like a Subquery
An IN List Never has Duplicates – Just like a Subquery
The Three Steps of How a Basic Subquery Works
The Final Answer Set from the Subquery
Quiz- Answer the Difficult Question
Answer to Quiz- Answer the Difficult Question
Should you use a Subquery or a Join?
Answer to Quiz- Write the Subquery
Quiz- Write the More Difficult Subquery
Answer to Quiz- Write the More Difficult Subquery
Quiz – Write the Extreme Subquery
Answer to Quiz- Write the Extreme Subquery
Quiz- Write the Subquery with an Aggregate
Answer to Quiz- Write the Subquery with an Aggregate
Quiz- Write the Correlated Subquery
Answer to Quiz- Write the Correlated Subquery
The Basics of a Correlated Subquery
The Top Query always runs first in a Correlated Subquery
Correlated Subquery Example vs. a Join with a Derived Table
Quiz- A Second Chance To Write a Correlated Subquery
Answer - A Second Chance to Write a Correlated Subquery
Quiz- A Third Chance To Write a Correlated Subquery
Answer - A Third Chance to Write a Correlated Subquery
Quiz- Last Chance To Write a Correlated Subquery
Answer – Last Chance to Write a Correlated Subquery
Quiz – Write the Extreme Correlated Subquery
Answer To Quiz – Write the Extreme Correlated Subquery
Answer to Quiz- Write the NOT Subquery
Quiz- Write the Subquery using a WHERE Clause
Answer - Write the Subquery using a WHERE Clause
Quiz- Write the Subquery with Two Parameters
Answer to Quiz- Write the Subquery with Two Parameters
How the Double Parameter Subquery Works
More on how the Double Parameter Subquery Works
Quiz – Write the Triple Subquery
Answer to Quiz – Write the Triple Subquery
Quiz – How many rows return on a NOT IN with a NULL?
Answer – How many rows return on a NOT IN with a NULL?
How to handle a NOT IN with Potential NULL Values
How a Correlated Exists matches up
The LENGTH Command Counts Characters
The LENGTH Command – Spaces can Count too
The LENGTH Command and Char (20) Data
The TRIM Command trims both Leading and Trailing Spaces
A Visual of the TRIM Command Using Concatenation
Trim and Trailing is Case Sensitive
How SUBSTRING Works with NO ENDING POSITION
How SUBSTRING Works with a Starting Position of -1
How SUBSTRING Works with an Ending Position of 0
An Example using SUBSTRING, TRIM and CHAR Together
Chapter 10 – Interrogating the Data
Non-Letters are Unaffected by UPPER and LOWER
Quiz – Fill in the Answers for the NULLIF Command
Quiz – Fill in the Answers for the NULLIF Command
The COALESCE Command – Fill In the Answers
COALESCE is Equivalent to This CASE Statement
The Basics of CAST (Convert And STore)
Some Great CAST (Convert And Store) Examples
Quiz - The Basics of the CASE Statements
Answer to Quiz - The Basics of the CASE Statements
Using an ELSE in the Case Statement
Rules For a Valued Case Statement
Rules For a Searched Case Statement
Valued Case Vs. A Searched Case
Answer - Valued Case Statement
Quiz - Searched Case Statement
Answer - Searched Case Statement
Combining Searched Case and Valued Case
A Trick for getting a Horizontal Case
Creating a Simple View to Restrict Sensitive Columns
Creating a Simple View to Restrict Rows
A View Provides Security for Columns and Rows
An Exception to the ORDER BY Rule inside a View
Views Are Sometimes CREATED for Formatting
Creating a View to Join Tables Together
How to Alias Columns in a View CREATE
The Standard Way Most Aliasing is Done
What Happens When Both Aliasing Options Are Present
Resolving Aliasing Problems in a View CREATE
Answer to Resolving Aliasing Problems in a View CREATE
Altering A Table After a View Has Been Created
A View that Errors After An ALTER
Chapter 12 – Set Operators Functions
An Equal Amount of Columns in both SELECT List
Columns in the SELECT list should be from the same Domain
The Top Query handles all Aliases
The Bottom Query does the ORDER BY
Great Trick: Place your Set Operator in a Derived Table
A Great Example of how MINUS works
USING Multiple SET Operators in a Single Request
Changing the Order of Precedence with Parentheses
Using UNION ALL for speed in Merging Data Sets
Chapter 13 – Table Create and Data Types
The Basics of Creating a Table
Creating a Table With Default Values
Altering a Table to Add a Column
Altering a Table to Drop a Column
Defining a Primary Key After the Table Has Been Created
Defining a Foreign Key After the Table Has Been Created
Creating a Table Using a CTAS Join
Creating a Global Temporary Table Using a CTAS
Creating a Global Temporary Table Using a CTAS Join
Creating a Temporary Table From Another's Space
Chapter 14 – Data Manipulation Language (DML)
INSERT/SELECT example using All Columns (*)
INSERT/SELECT example with Less Columns
Subquery UPDATE Command Syntax
example of Subquery UPDATE Command
The DELETE Command Basic Syntax
A DELETE Example Deleting only Some of the Rows
Example of Subquery DELETE Command
Example of Subquery DELETE That Gets Rid of Null Values
Chapter 15 – Statistical Aggregate Functions
Numeric Manipulation Functions
Another CORR Example so you can Compare
Another COVAR_POP Example so you can Compare
Another COVAR_SAMP Example so you can Compare
Another REGR_INTERCEPT Example so you can compare
Another REGR_SLOPE Example so you can compare
Another REGR_AVGX Example so you can Compare