In SQL Server 2005 I have a table cm_production that lists all the code that's been put into production. The table has a
ticket_number, program_type, program_name and
push_number along with some other columns.
GOAL: Count all the DISTINCT program names by program type and push number.
What I have so far is:
DECLARE @push_number INT;
SET @push_number = [HERE_ADD_NUMBER];
SELECT DISTINCT COUNT(*) AS Count, program_type AS [Type]
FROM cm_production
WHERE push_number=@push_number
GROUP BY program_type
This gets me partway there, but it's counting all the program names, not the distinct ones (which I don't expect it to do in that query). I guess I just can't wrap my head around how to tell it to count only the distinct program names without selecting them. Or something.
Aryan Kumar
19-Apr-2023In SQL, selecting COUNT(*) with DISTINCT is a way to count the number of distinct values in a column of a table.
Suppose we have a table called orders with the following columns: order_id, customer_id, and order_date. We want to know how many unique customers have placed orders. We can do this using the following SQL query:
This query selects the customer_id column from the orders table and counts the number of distinct values. The result is a single value indicating the number of unique customers who have placed orders.
Note that if we simply used COUNT(*) without the DISTINCT keyword, we would get the total number of rows in the orders table, not the number of unique customers. By using DISTINCT, we ensure that each customer is counted only once, regardless of how many orders they have placed.