I can get the counts of each station/status in individual lines and
loop through the array counting the various status states, but the
runtime for that is growing and I'm looking for a better solution
before it becomes a problem.
SELECT station,
SUM(CASE WHEN status = 'Pending' THEN 1 ELSE 0 END) AS "Pending",
SUM(CASE WHEN status = 'Deleted' THEN 1 ELSE 0 END) AS "Deleted",
SUM(CASE WHEN status = 'Nutty' THEN 1 ELSE 0 END) AS "Nutty"
FROM your_table
GROUP BY station;
Thanks Rob, that's pretty good. Close to one of my attempts.
But what if status is not static? The distinct values of `status`
change in value and quantity... which it does.
Then you can build the SQL after first getting the distinct values of the status.
Or do the analysis in ruby after getting the raw [station, status] data.
-Rob
SELECT station,
SUM(CASE WHEN status = 'Pending' THEN 1 ELSE 0 END) AS
"Pending",
SUM(CASE WHEN status = 'Deleted' THEN 1 ELSE 0 END) AS
"Deleted",
SUM(CASE WHEN status = 'Nutty' THEN 1 ELSE 0 END) AS "Nutty"
FROM your_table
GROUP BY station;
--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.