Production · drill
Ask once, not once per row
For every actor with events, return the actor_id and how many events they have, busiest first then by actor_id. Call the count events. One pass, not one query per actor.
Tables in this database · Events
CREATE TABLE events ( id INTEGER PRIMARY KEY, actor_id INTEGER NOT NULL, kind TEXT NOT NULL, email TEXT NOT NULL, happened_on DATE NOT NULL, duration_ms INTEGER )
CREATE INDEX events_actor_idx ON events (actor_id); CREATE INDEX events_kind_happened_idx ON events (kind, happened_on); CREATE INDEX events_email_idx ON events (email);
Your query
⌘⏎