Olá! Sou iniciante em SQL. Gostaria de conseguir extrair uma lista de usuários que postaram pela primeira vez dentro de um período de tempo definido.
Observe que se trata da primeira vez que eles postam, e não da primeira vez que se cadastraram. Nosso caso de uso é diferente da maioria, então o post é o ponto importante.
Isso deve resolver o problema, @ThunderThighs. Adicione ao seu Data Explorer, preencha a data de início e a data de fim, e você estará pronto para começar. As datas devem seguir um formato suportado, sendo um deles AAAA-MM-DD.
Usuários com primeiro post no período
-- [params]
-- date :start_date
-- date :end_date
SELECT username
FROM users u
JOIN user_stats us
ON u.id = us.user_id
WHERE us.first_post_created_at BETWEEN :start_date::date AND :end_date::date
-- [params]
-- date :start_date
-- date :end_date
SELECT u.id AS user_id, p.id AS post_id, p.created_at
FROM users u
JOIN user_stats us
ON u.id = us.user_id
JOIN posts p
ON u.id = p.user_id
WHERE p.created_at = us.first_post_created_at
AND us.first_post_created_at BETWEEN :start_date::date AND :end_date::date
Posso fazer uma pergunta básica sobre SQL? O que são os u e us nas linhas dois e três? Eles funcionam de forma semelhante ao AS, permitindo que users seja referido pelo prefixo u e user_stats pelo prefixo us?
É essencialmente uma abreviação. Isso permite que você use us.user_id em vez de user_stats.user_id para se referir à coluna user_id na tabela user_stats. É especialmente útil com nomes de tabelas longos e consultas grandes.