I have one table where I would like to count the amount of names grouped by school, count whether school has one or two genders as well as count the specific occurence of a particular value in 3 different columns. I am able to do the counts in two different tables but I want to join them to make 1 table
| FName | School | Gender | Events | Events2 | Events3 |
|---|---|---|---|---|---|
| Ann | Marymount | F | HJ | LJ | TJ |
| Peter | Marymount | M | 100 | 200 | 400 |
| Drew | St Hughs | M | 100 | 200 | |
| Davis | St Hughs | M | 200 | ||
| Kat | Campion | F | 400 | ||
| Molly | Campion | F | 400 | ||
| Mike | Marymount | M | 800 | ||
| Fran | Campion | M | 100 | 200 |
These are the 2 separate queries I use successfully and create two different result sets
$sql = "SELECT COUNT(FName) as cnt, COUNT(DISTINCT(Gender)) as gnd, school, COUNT(*) FROM entries WHERE school <> 'Unattached' GROUP BY school";
$sql = "SELECT COUNT(Events + Events2 + Events3) as events, school, COUNT(*) FROM entries WHERE (school <> 'Unattached') AND (Events = '100') OR (Events2 = '100') OR (Events3 = '100') GROUP BY school";
$result = $conn->query($sql);
I have tried using a union but it only gives me results for second query and the count of names is off.
$sql = "
SELECT COUNT(FName) as cnt, COUNT(Events + Events2 + Events3) as events, COUNT(DISTINCT(Gender)) as gnd, school
FROM entries WHERE (school <> 'Unattached')
UNION
SELECT COUNT(FName) as cnt, COUNT(Events + Events2 + Events3) as events, COUNT(DISTINCT(Gender)) as gnd, school
FROM entries WHERE (school <> 'Unattached') AND (Events = '100') OR (Events2 = '100') OR (Events3 = '100')
GROUP BY school";
$result = $conn->query($sql);
The left join gave me no results because I didn't know how to fit the 2 WHERE clauses.
How can I join the two queries to get one table with the following result
| School | # of Participants | # Genders | # 100 |
|---|---|---|---|
| Marymount | 3 | 2 | 1 |
| St Hughs | 2 | 1 | 1 |
| Campion | 3 | 2 | 1 |
COUNT(Events + Events + Events3)supposed to count?COUNT(<expression>)counts the number of rows where the expression is not NULL.