I am new to SQL and am having trouble using the count function to determine how many ‘YES’ or ‘NO’ for each criteria – apologies, this may be a stupid question.
I have a table with data like this (there are more businesstravel categories):
attrition | businesstravel |
---|---|
Yes | Travel_Rarely |
No | Travel_Frequently |
Yes | Travel_Rarely |
No | Travel_Frequently |
No | Travel_Rarely |
And I want to count how many ‘Yes’ and ‘No’s align to each of the businesstravel categories. For example, like the below:
attrition | businesstravel | count |
---|---|---|
Yes | Travel_Rarely | 43 |
No | Travel_Rarely | 65 |
Yes | Travel_Frequently | 72 |
No | Travel_Frequently | 5 |
I have tried the below but no luck:
- SELECT businesstravel, attrition
- COUNT(attrition)
- FROM wa_fn_usec_hr_employee_attrition_tsv
- GROUP BY businesstravel;
Advertisement
Answer
Your query is nearly right. You’re missing a comma after “attrition” and you need to add attrition in the group by.
xcreate table
wa_fn_usec_hr_employee_attrition_tsv(
attrition varchar(10),
businesstravel varchar(50));
insert into
wa_fn_usec_hr_employee_attrition_tsv
values
('Yes','Travel_Rarely'),
('No','Travel_Frequently'),
('Yes','Travel_Rarely'),
('No','Travel_Frequently'),
('No','Travel_Rarely');
✓ ✓
SELECT
businesstravel,
attrition,
COUNT(*)
FROM wa_fn_usec_hr_employee_attrition_tsv
GROUP BY
businesstravel,
attrition;
businesstravel | attrition | COUNT(*) :---------------- | :-------- | -------: Travel_Rarely | Yes | 2 Travel_Frequently | No | 2 Travel_Rarely | No | 1
db<>fiddle here