Skip to content

Instantly share code, notes, and snippets.

@EvanCarroll
Created January 23, 2012 23:38
Show Gist options
  • Save EvanCarroll/1666442 to your computer and use it in GitHub Desktop.
Save EvanCarroll/1666442 to your computer and use it in GitHub Desktop.
SELECT DISTINCT ON(random.first, random.last) coalesce(mf.name, ff.name), l.name FROM (
SELECT
RANDOM() * 90.020 AS first -- dataset is 90% of most popular
, RANDOM() * 90.483 AS last
, CASE WHEN RANDOM() > 0.5 THEN 'male' ELSE 'female' END AS sex
, CASE WHEN RANDOM() > 0.5 THEN 'model' ELSE 'vehicle' END AS detail
FROM generate_series(1,10,1)
) AS random
LEFT OUTER JOIN census.names AS mf
ON random.sex = 'male'
AND mf.name_type = 'MALE_FIRST'
AND mf.cumfreq > random.first
LEFT OUTER JOIN census.names AS ff
ON random.sex = 'female'
AND ff.name_type = 'FEMALE_FIRST'
AND ff.cumfreq > random.first
LEFT OUTER JOIN census.names AS l
ON l.name_type = 'LAST'
AND l.cumfreq > random.first
ORDER BY random.first, random.last, mf.cumfreq, ff.cumfreq, l.cumfreq
;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment