Per le query standard di select, where, sort, limit, le scrivo da solo, ma per qualsiasi cosa di più complicato, chiedo all’IA. Ho chiesto all’IA:
“scrivi una query che mostri una categoria e poi elenchi i primi 5 iniziatori di argomenti per quella categoria e il numero di argomenti che hanno avviato”
E immediatamente mi ha restituito (questo è un database non-discourse):
WITH TopTopicStarters AS (
SELECT
c.id AS category_id,
c.name AS category_name,
u.name AS user_name,
COUNT(t.id) AS num_topics_started,
ROW_NUMBER() OVER(PARTITION BY c.id ORDER BY COUNT(t.id) DESC) AS rank
FROM topics t
JOIN categories c ON t.category_id = c.id
JOIN users u ON t.user_id = u.userid
GROUP BY c.id, u.name
)
SELECT
c.category_name,
tts.user_name,
tts.num_topics_started
FROM categories c
JOIN TopTopicStarters tts ON c.id = tts.category_id
WHERE tts.rank <= 5;
Non c’è modo che avrei potuto ideare quello senza un sacco di ricerche su Google e tentativi ed errori!