私はこのようなテーブルを持っています:
218 4 AudioVerse https://www.audioverse.org/english/podcasts/latest Latest NULL 2012-03-29 15:32:44.287
222 7 TPB http://rss.thepiratebay.se/0 Alt NULL 2012-03-31 17:55:49.223
223 7 EZTV http://www.ezrss.it/feed/ Alt NULL 2012-03-31 17:56:41.573
226 11 The Piratebay http://rss.thepiratebay.se/100 Audio Only NULL 2012-04-04 14:57:45.377
227 11 The Piratebay http://rss.thepiratebay.se/200 Video Only NULL 2012-04-04 14:58:04.650
229 15 ThePirateBay http://rss.thepiratebay.se/200 NULL 2012-04-06 22:40:12.730
230 14 The Pirate Bay http://rss.thepiratebay.se/0 NULL 2012-04-08 00:59:13.217
232 14 AudioVerse https://www.audioverse.org/english/podcasts/latest NULL 2012-04-08 01:03:22.787
233 14 EZTV http://www.ezrss.it/feed/ NULL 2012-04-08 01:20:55.860
234 17 Twit http://twit.tv/node/feed NULL 2012-04-13 18:59:23.037
235 17 Diggnation http://revision3.com/diggnation/feed/MP4-Large Video Large NULL 2012-04-13 19:01:52.817
クエリまたはストアドプロシージャが、個別のテーブルと、このURLを共通に持つIDを持つ列を返すようにします(2番目のID列(4,7,11,15,14,17)はのIDです)質問)次のようにカンマ区切り形式で:
http://rss.thepiratebay.se/0 3 4,5,7,7,11,11,15,14,14,14,17,17
http://rss.thepiratebay.se/200 2 4,5,7,7,11,11,15,14,14,14,17,17
http://www.ezrss.it/feed/ 2 4,5,7,7,11,11,15,14,14,14,17,17
https://www.audioverse.org/english/podcasts/latest 2 4,5,7,7,11,11,15,14,14,14,17,17
http://revision3.com/diggnation/feed/MP4-Large 1 4,5,7,7,11,11,15,14,14,14,17,17
http://twit.tv/node/feed 1 4,5,7,7,11,11,15,14,14,14,17,17
http://rss.thepiratebay.se/100 1 4,5,7,7,11,11,15,14,14,14,17,17
ここで、最初の列は個別のURL、次の列はURLが存在する回数(上記のメインテーブルとは異なりますが、要点はわかります)、およびこれらのURLに共通するIDのコンマ区切りの文字列です。
この場合のコンマ区切りの文字列は正しくありません。
このテーブルを作成するために使用したクエリは次のとおりです。
DECLARE @listStr VARCHAR(MAX)
SELECT @listStr = COALESCE(@listStr+',' ,'') + cast(userid as varchar)
FROM sites
select url, COUNT(*), (@listStr)
from sites
group by url
order by COUNT(*) desc
SQL Server2008R2を使用しています。
私があなたに提示する質問は、これをどのように行うか、そしてどの方法(複数ある場合)が最も効率的かということです。
どんな助けでもいただければ幸いです。これはC#コードで行うこともできますが、ストアドプロシージャ、またはクエリのいずれか、最も簡単な方法、またはより高速な方法のいずれかで行う方がはるかに望ましいです:P