Reputation: 7405
I'm trying to first query by the second one, how would I go about this?
SELECT COUNT(*) AS Result
FROM pparsdb.application
INNER JOIN pparsdb.planning_scheme
ON application.planning_scheme = planning_scheme.ps_code
WHERE planning_scheme.markus_ra = 'GA'
SELECT Result / COUNT(*)
FROM pparsdb.planning_scheme
WHERE markus_ra = 'GA'
Upvotes: 0
Views: 59
Reputation: 1269563
Assuming that you have only one planning scheme per application, here is an approach that uses just one query with no subqueries:
SELECT COUNT(a.planning_scheme) / COUNT(*) AS Result
FROM pparsdb.planning_scheme ps left outer join
pparsdb.application a
ON a.planning_scheme = ps.ps_code
WHERE ps.markus_ra = 'GA'
Even if that condition doesn't hold, you can do:
SELECT COUNT(a.planning_scheme) / COUNT(distinct ps.planning_scheme) AS Result
FROM pparsdb.planning_scheme ps left outer join
pparsdb.application a
ON a.planning_scheme = ps.ps_code
WHERE ps.markus_ra = 'GA'
Upvotes: 2
Reputation: 263693
try this,
SELECT COUNT(*) / crss.totalCount AS Result
FROM pparsdb.application
INNER JOIN pparsdb.planning_scheme
ON application.planning_scheme = planning_scheme.ps_code
CROSS JOIN
(
SELECT COUNT(*) totalCount
FROM pparsdb.planning_scheme
WHERE markus_ra = 'GA'
) crss
WHERE planning_scheme.markus_ra = 'GA'
Upvotes: 2