私は数時間返そうとしました.4行目は、明確なdoman_namnの数を教えてくれます. COUNT(DISTINCT doman_namn) を追加しようとし続けますが、グループ化が必要になり、目的が破壊されます。
これは、2 つのパラメーターを取るストアド プロシージャです。
@keyword[varchar](100),
@domannamn [varchar](100)
このような2つのテーブルを使用します
FIRST TABLE テーブル t_doman 列。doman_id ドメイン名
SECOND TABLE テーブル t_ranking 列; ranking_position ranking_date ranking_keyword ranking_id_doman
@keyword を使用して t_ranking テーブルの正しい行を検索し、次に doman_id のranking_id_doman に参加して「doman_name」を取得します。日付ごとに名前のセットがあり、名前が繰り返されます日付ごとに、個別の名前がいくつあるかを確認し、それを続けて返す必要があります。
次のように動作する必要があります。
Ranking position, date, name, number of distinct name's
1___________________2012-11-11, tony, 3
2___________________2012-11-11, chris, 3
3___________________2012-11-11, peter, 3
1___________________2012-11-10, tony, 3
2___________________2012-11-10, chris, 3
3___________________2012-11-10, peter, 3
SELECT
ranking_position,
CONVERT(varchar(10),ranking_date, 120),
doman_namn
--Here's my my attempt COUNT(DISTINCT doman_namn) as 'number_of_discint_names'
FROM
(SELECT
ranking_position,
ranking_date,
ranking_id_doman
FROM dbo.t_ranking
WHERE ranking_keyword = 'keyword'
AND ranking_date BETWEEN DATEADD(day, -30, GETDATE()) AND GETDATE()
AND ranking_id_doman IN (SELECT doman_id FROM dbo.t_doman WHERE doman_namn LIKE 'doman' + '%')) as tr
JOIN dbo.t_doman td on tr.ranking_id_doman = td.doman_id
--GROUP BY doman_namn ALSO IT DOES NOT WORK
ORDER BY ranking_date ASC