Ecco alcune query per Data Explorer per ottenere dettagli sui caricamenti dei post. Potrebbe essere utile aggiungere qualcosa di simile alla sezione dei report amministrativi per i siti che non hanno installato il plugin Data Explorer. Fammi sapere se questi dati non sono quelli che stai cercando.
Quali utenti hanno il maggior numero di caricamenti o i file più grandi?
Restituisce l’utente, il numero di caricamenti e il totale dei caricamenti in KB arrotondato a due decimali. La join sulla tabella users serve a evitare che vengano restituiti dati relativi a utenti eliminati. I risultati sono ordinati per dimensione totale dei caricamenti in ordine decrescente.
Includendo le immagini ottimizzate
WITH uploads_with_optimized AS (
SELECT
ul.user_id,
ROUND((SUM(COALESCE(oi.filesize, 0)) + SUM(ul.filesize)) / 1000.0, 2) AS total_kb
FROM post_uploads pul
JOIN uploads ul
ON ul.id = pul.upload_id
LEFT JOIN optimized_images oi
ON ul.id = oi.upload_id
GROUP BY ul.user_id
)
SELECT
uwo.user_id,
COUNT(uploads.user_id) AS upload_count,
total_kb
FROM uploads_with_optimized uwo
JOIN uploads
ON uploads.user_id = uwo.user_id
GROUP BY uploads.user_id, uwo.user_id, total_kb
ORDER BY total_kb DESC
LIMIT 50
Escludendo le immagini ottimizzate
SELECT
ul.user_id,
COUNT(ul.user_id) AS upload_count,
ROUND(SUM(ul.filesize) / 1000.0, 2) AS total_kb
FROM post_uploads pul
JOIN uploads ul
ON ul.id = pul.upload_id
GROUP BY ul.user_id
ORDER BY total_kb DESC
LIMIT 50
Quali sono i 100 caricamenti più grandi sul mio forum?
Restituisce l’utente, il post contenente il caricamento e la dimensione del file in KB. I risultati sono ordinati per dimensione del caricamento in ordine decrescente.
Includendo le immagini ottimizzate
SELECT
ul.user_id,
pul.post_id,
ROUND((SUM(oi.filesize) + ul.filesize) / 1000.0, 2) AS total_kb
FROM post_uploads pul
JOIN uploads ul
ON ul.id = pul.upload_id
JOIN optimized_images oi
ON ul.id = oi.upload_id
GROUP BY oi.upload_id, ul.user_id, pul.post_id, ul.filesize
ORDER BY total_kb DESC
LIMIT 100
Escludendo le immagini ottimizzate
SELECT
ul.user_id,
pul.post_id,
ROUND(ul.filesize / 1000.0, 2) AS total_kb
FROM post_uploads pul
JOIN uploads ul
ON ul.id = pul.upload_id
ORDER BY total_kb DESC
LIMIT 100
Caricamenti negli ultimi 30 giorni
La query richiede di fornire un parametro :end_date. La data deve essere nel formato ‘aaaa-mm-gg’, ad esempio ‘2020-01-08’. Restituisce i risultati per il periodo di 30 giorni che termina con la end_date. Restituisce il giorno, il numero di caricamenti e il totale dei caricamenti del giorno in KB per tutti i giorni del periodo che contengono caricamenti di post. I risultati sono ordinati per giorno.
Includendo le immagini ottimizzate
--[params]
-- date :end_date
SELECT
ul.created_at::date AS day,
COUNT(1) AS upload_count,
ROUND((SUM(COALESCE(oi.filesize, 0)) + SUM(ul.filesize)) / 1000.0, 2) AS total_kb
FROM post_uploads pul
JOIN uploads ul
ON ul.id = pul.upload_id
LEFT JOIN optimized_images oi
ON ul.id = oi.upload_id
WHERE ul.created_at::date BETWEEN :end_date::date - INTERVAL '30 days' AND :end_date
GROUP BY ul.created_at::date
ORDER BY ul.created_at::date DESC
Escludendo le immagini ottimizzate
--[params]
-- date :end_date
SELECT
ul.created_at::date AS day,
COUNT(1) AS upload_count,
ROUND(SUM(ul.filesize) / 1000.0, 2) AS daily_upload_kb
FROM post_uploads pul
JOIN uploads ul
ON ul.id = pul.upload_id
WHERE ul.created_at::date BETWEEN :end_date::date - INTERVAL '30 days' AND :end_date
GROUP BY ul.created_at::date
ORDER BY ul.created_at::date DESC