Eu tenho um banco de dados cujo diagrama ER se parece com este:
Eu me esforço para conseguir todos os usuários que tenham, por exemplo, mais de cinco mensagens. Consegui escrever uma consulta em python:
q = "SELECT user_id from users"
for row in cursor.execute(q):
inner_cur = connect.cursor()
n = inner_cur.execute("SELECT count(*) from messages WHERE user_id='{}' ".format(row[0])).fetchall()[0][0]
# print("user_id =", row[0], "num of messages =", n)
if n > 5:
c = connect.cursor()
print(c.execute("SELECT username from users WHERE user_id='{}' ".format(row[0])).fetchall()[0][0])
connect.commit()
Mas preciso fazer isso no DBeaver. Pensei que talvez precisasse usar join
, count
ou group by
, mas não consigo pensar em como. Alguém poderia explicar como fazer isso?
Sugiro pegar um livro sobre SQL.