我已经尝试了几个小时来返回,第四行会告诉我不同的 doman_namn 的数量。我一直在尝试添加一个 COUNT(DISTINCT doman_namn) 但是我需要一个 group by,这反过来又破坏了目的。
这是存储过程,它有两个参数:
@keyword[varchar](100),
@domannamn [varchar](100)
它使用两个看起来像这样的表
FIRST TABLE 表 t_doman 列;域名 ID 域名
SECOND TABLE 表 t_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