現在、別のテーブルから一意の各ギャラリー内にある画像の数を返す別の列 (PictureCount) を結果セットに追加しようとしています。(GalleryID はそれらをリンクします。) すべての GalleryID には、3 ~ 20 個の MediaID が関連付けられています。
私はSQLの専門家ではないので、助けが必要です。探しているカウントを返すことができるかどうかさえわかりません。
ありがとう!
あなたを助けるSQLフィドル:http://sqlfiddle.com/#!3/72935/16
これは、方法がわからない Count 列を除いて、必要なものすべてを返す現在のクエリです。
WITH CTE AS (
SELECT a.GalleryTitle, a.GalleryDate, b.*,
ROW_NUMBER() OVER (PARTITION BY a.GalleryID, a.GalleryTitle, a.GalleryDate
ORDER BY b.MediaThumb DESC) AS Rn
FROM Media b
INNER JOIN Galleries A
ON a.GalleryID = b.GalleryID
WHERE b.IsPlug = 0 AND b.IsHidden = 0
),
CTE2 AS
(
SELECT a.GalleryTitle, a.GalleryDate, b.*,
1 Rn
FROM Media b
LEFT OUTER JOIN Galleries A
ON a.GalleryID = b.GalleryID
)
SELECT *, NewID = NEWID() FROM CTE WHERE rn = 1 and MediaTypeID = 4
UNION ALL
SELECT *, NewID = NEWID() FROM CTE2 WHERE rn = 1 and MediaTypeID = 4 and GalleryID is NULL
ORDER BY GalleryDate DESC, GalleryID DESC