Hier sind einige Data Explorer-Abfragen, um Details zu Post-Uploads zu erhalten. Möglicherweise könnte Ähnliches zum Abschnitt für Admin-Berichte hinzugefügt werden, für Sites, auf denen das Data Explorer-Plugin nicht installiert ist. Lass mich wissen, ob diese Daten nicht das sind, was du suchst.
Welche Benutzer haben die meisten/größten Uploads?
Gibt den Benutzer, seine Upload-Anzahl und seine Gesamtuploads in KB, auf 2 Dezimalstellen gerundet, zurück. Der Join auf die Tabelle users verhindert, dass Daten von gelöschten Benutzern zurückgegeben werden. Die Ergebnisse werden nach der Gesamtgröße der Uploads in absteigender Reihenfolge sortiert.
Inklusive optimierter Bilder
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
Ohne optimierte Bilder
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
Was sind die 100 größten Uploads auf meinem Forum?
Gibt den Benutzer, den Post mit dem Upload und die Dateigröße des Uploads in KB zurück. Die Ergebnisse werden nach Upload-Größe in absteigender Reihenfolge sortiert.
Inklusive optimierter Bilder
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
Ohne optimierte Bilder
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
Uploads der letzten 30 Tage
Die Abfrage erfordert, dass du einen Parameter :end_date bereitstellst. Das Datum sollte im Format ‘yyyy-mm-dd’ vorliegen, z. B. ‘2020-01-08’. Sie gibt Ergebnisse für den 30-Tage-Zeitraum zurück, der mit dem end_date endet. Sie gibt den Tag, die Upload-Anzahl und die Gesamtuploads des Tages in KB für alle Tage im Zeitraum zurück, die Post-Uploads haben. Die Ergebnisse werden nach Tag sortiert.
Inklusive optimierter Bilder
--[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
Ohne optimierte Bilder
--[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