List of all uploaded files

ポストのアップロードに関する詳細を取得するための、いくつかのデータエクスプローラークエリをご紹介します。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

「いいね!」 11