ポストのアップロードに関する詳細を取得するための、いくつかのデータエクスプローラークエリをご紹介します。Data Explorer プラグインがインストールされていないサイト向けに、管理レポートセクションに同様の機能を追加できるかもしれません。このデータが求めるものではない場合は、お知らせください。
どのユーザーが最も多く/最も大きなアップロードを持っていますか?
ユーザー、そのアップロード数、および合計アップロードサイズ(KB、小数点以下 2 桁に丸め)を返します。users テーブルとの結合により、削除されたユーザーのデータが返されないようにしています。結果は合計アップロードサイズの降順でソートされます。
最適化された画像を含む場合
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
最適化された画像を除外する場合
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
フォーラム上の最大のアップロード 100 件は?
ユーザー、アップロードを含む投稿、およびアップロードのファイルサイズ(KB)を返します。結果はアップロードサイズの降順でソートされます。
最適化された画像を含む場合
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
最適化された画像を除外する場合
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
過去 30 日間のアップロード
このクエリでは :end_date パラメータを指定する必要があります。日付は「yyyy-mm-dd」形式(例:‘2020-01-08’)で入力してください。これは、end_date で終わる 30 日間の期間の結果を返します。ポストアップロードがある日の日付、アップロード数、およびその日の合計アップロードサイズ(KB)を返します。結果は日付順にソートされます。
最適化された画像を含む場合
--[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
最適化された画像を除外する場合
--[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