0% found this document useful (0 votes)
5 views4 pages

Essential SQL Queries for Data Analysis

The document provides various SQL queries and techniques for data manipulation in PostgreSQL, including salary checks, string functions, aggregate functions, and date/time functions. It demonstrates the use of operators like LIKE and IN, as well as conditional functions such as CASE and IF. Additionally, it covers methods for extracting and formatting data, along with counting unique departments and total products.

Uploaded by

Mateen Haider
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views4 pages

Essential SQL Queries for Data Analysis

The document provides various SQL queries and techniques for data manipulation in PostgreSQL, including salary checks, string functions, aggregate functions, and date/time functions. It demonstrates the use of operators like LIKE and IN, as well as conditional functions such as CASE and IF. Additionally, it covers methods for extracting and formatting data, along with counting unique departments and total products.

Uploaded by

Mateen Haider
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

SQL QUERY

"SQL for Smarties" by Joe Celko


"PostgreSQL: Up and Running" by Regina Obe and Leo Hsu

-- salary check

SELECT first_name, last_name, salary


FROM employee2
WHERE salary BETWEEN 40000 AND 60000;

-- USE LIKE OPERATOR

SELECT first_name FROM employee2


WHERE first_name LIKE '%a';

-- USE of IN Operator

SELECT first_name, last_name, department


FROM employee2
WHERE department IN ('Finance','Marketing');

-- Unique 5 department

SELECT first_name, last_name, department


FROM employee2
ORDER BY salary DESC
LIMIT 5;

SELECT COUNT (DISTINCT department) AS DEP_UNIQUE_COUNT


FROM employee2;

– Aggregate Functions
Max , Min

SELECT SUM(quantity) AS total_quantity


FROM table_name

–Total number of products

SELECT COUNT(*) AS total_products


FROM —--- ;
Average price

SELECT AVG(price) As average_price


FROM —---;

String Functions

LENGTH —-- SELECT department, LENGTH(department) AS count_name


FROM employee2;

-- To Join to column together


SELECT CONCAT(first_name,' ', last_name) AS full_name
FROM employee2;

To Extract character

SELECT SUBSTRING (first_name,1,5) AS short_name


FROM —----- Table name;

— Removing Trailing and leading spaces

SELECT TRIM

-- Date / Time functions

SELECT CURRENT_DATE AS today_date;

SELECT joining_date,CURRENT_DATE, (CURRENT_DATE- joining_date) AS date_difference


FROM employee2;

EXTRACT

SELECT department, EXTRACT (YEAR FROM joining_date) AS year_date


FROM employee2;

AGE

SELECT department,
AGE (CURRENT_DATE ,joining_date) AS age_calulation
FROM employee2;
– To Char
SELECT department,
TO_CHAR(joining_date,'DD-MON-YYYY') AS format_date
FROM employee2;

SELECT department, joining_date,


DATE_PART('dow',joining_date) AS format_date
FROM employee2;

--Date Trunc

SELECT department, joining_date,


DATE_TRUNC('week',joining_date) AS week_date,
DATE_PART('MONTH',joining_date) AS month_date
FROM employee2;

—-------------------
SELECT department, joining_date,
joining_date + INTERVAL '8 MONTHS' AS NEW_date
FROM employee2;

Conditional Function

SELECT
column_name,
CASE
WHEN condition1 THEN 'result1'
WHEN condition2 THEN 'result2'
ELSE 'default_result'
END AS alias_name
FROM table_name;

SELECT
IF(condition, 'true_value', 'false_value') AS alias_name
FROM table_name;

SELECT
IFNULL(column_name, 'default_value') AS alias_name
FROM table_name;
SELECT
NULLIF(expression1, expression2) AS alias_name
FROM table_name;

Common questions

Powered by AI

Conditional logic functions in SQL, like CASE and IF, enable the creation of dynamic query logic tailored to specific conditions. The CASE function allows evaluating conditions and returning results according to the first condition met, such as "SELECT column_name, CASE WHEN condition1 THEN 'result1' WHEN condition2 THEN 'result2' ELSE 'default_result' END AS alias_name FROM table_name;". The IF function provides a simpler conditional check, "SELECT IF(condition, 'true_value', 'false_value') AS alias_name FROM table_name;". These functions add flexibility to SQL queries by allowing conditional data transformation or classification based on field values, enhancing the power of database querying .

The SQL BETWEEN operator is used to filter query results within a specified range, inclusive of the boundary values. In the context of employee salaries, the query "SELECT first_name, last_name, salary FROM employee2 WHERE salary BETWEEN 40000 AND 60000;" returns the first name, last name, and salary of employees whose salaries fall between 40,000 and 60,000, inclusive. The implication of using BETWEEN is that if the salary matches either boundary value, it will still be included in the result set. This operator is efficient for retrieving data within a specific range without needing multiple conditions .

The IN operator in SQL is advantageous for filtering results within a specified set of values. The query "SELECT first_name, last_name, department FROM employee2 WHERE department IN ('Finance','Marketing');" efficiently retrieves records matching either 'Finance' or 'Marketing' departments. Using IN is syntactically cleaner and often more efficient than multiple OR conditions, such as "department = 'Finance' OR department = 'Marketing'". IN is particularly beneficial when checking a field against a large list of values, as it enhances readability and can potentially optimize execution plans in a SQL database engine .

The LIKE operator with the '%' wildcard in SQL is crucial for pattern matching tasks within text fields. For example, the query "SELECT first_name FROM employee2 WHERE first_name LIKE '%a';" searches for employees whose first names end with the letter 'a'. The '%' wildcard matches any sequence of characters of any length, which allows for flexible pattern matching. This is particularly useful in situations where the exact text is unknown, enabling searches for names based on prefixes, suffixes, or substrings. The LIKE operator with '%' is essential for formulating dynamic and robust queries for text searches .

SQL functions DATE_PART and DATE_TRUNC are foundational in temporal analysis for extracting or truncating parts of date fields. DATE_PART extracts components such as day, month, or dow (day of week), providing granular time-based insights, e.g., "SELECT department, joining_date, DATE_PART('dow',joining_date) AS format_date FROM employee2;". DATE_TRUNC truncates a date to the specified precision, useful for aggregations, e.g., "SELECT department, DATE_TRUNC('week',joining_date) AS week_date, DATE_PART('MONTH',joining_date) AS month_date FROM employee2;" aligns dates to week or month boundaries. These functions are crucial for systematic temporal grouping and filtering, facilitating accurate time series analysis and reporting .

INTERVAL operators in SQL facilitate the calculation of future or past dates, allowing temporal adjustments to a given date value. For example, "SELECT department, joining_date, joining_date + INTERVAL '8 MONTHS' AS NEW_date FROM employee2;" adds eight months to each joining date, computing a new projected date. This functionality is crucial for forecasts and scheduling tasks, such as calculating contract end dates or scheduled maintenance reminders. By automating date calculations, INTERVAL operators save time and minimize errors, providing robust solutions for various temporal analysis needs .

SQL date and time functions offer powerful tools for performing temporal calculations and transformations. CURRENT_DATE returns the current date, enabling up-to-date queries. For instance, "SELECT joining_date, CURRENT_DATE, (CURRENT_DATE - joining_date) AS date_difference FROM employee2;" calculates the difference in days between the current date and the joining date. EXTRACT extracts specific date parts, such as years, from a date field; for example, "SELECT department, EXTRACT(YEAR FROM joining_date) AS year_date FROM employee2;" extracts the year from a joining date, facilitating year-based grouping or filtering. These functions are essential for time series analysis, trend analysis, and general temporal data management .

SQL functions TRIM and SUBSTRING are vital for cleaning and preparing data for analysis or reporting. TRIM removes leading and trailing spaces from strings, essential for standardizing data input and reducing errors due to extraneous spaces: "SELECT TRIM --". SUBSTRING extracts a specific portion of a string based on indices, beneficial for segmenting or summarizing text fields, for instance "SELECT SUBSTRING(first_name,1,5) AS short_name FROM --". These functions enhance data quality by cleaning, standardizing, and extracting necessary details from text data, reducing potential inaccuracies and increasing the reliability of analyses .

Aggregate functions in SQL, such as SUM(), COUNT(), and AVG(), are used to perform calculations on a set of values and return a single value. SUM() computes the total sum of a numeric column, as demonstrated with "SELECT SUM(quantity) AS total_quantity FROM table_name;" which calculates the total quantity across rows. COUNT() determines the number of rows that match a criteria, illustrated by "SELECT COUNT(*) AS total_products FROM --". AVG() calculates the average of a numeric column, shown in "SELECT AVG(price) As average_price FROM --". These functions are fundamental for summarizing data, providing insights like totals, counts, and averages, which are essential for data analytics and reporting .

SQL string functions such as LENGTH and CONCAT are employed to manipulate and extract data from text fields. LENGTH returns the number of characters in a string; for example, "SELECT department, LENGTH(department) AS count_name FROM employee2;" computes the length of the department names, useful for validations or data quality checks. CONCAT combines multiple strings into a single string, shown as "SELECT CONCAT(first_name,' ', last_name) AS full_name FROM employee2;" which constructs full names from separate first and last name columns. These functions are integral to preparing and transforming data for analysis or presentation purposes .

You might also like