TSQL Challenge 5

Voici un nouveau challenge sql que j’ai cross posté aussi sur Beyond Relational avec Jacob Sebastian. Je travaille maintenant avec lui à la rédaction de nouveaux challenges sql. Un nouveau blog dédié ainsi qu’un forum ont été ouverts spécialement pour l’occasion.

Il s’agit ici d’étudier comment transformer des données séparées par des virgules en données tabulaires, mais le tout en ligne, en une seule requête.

Le contexte

Vous devez faire un rapport sur des recherches par mots clés sur un blog.

Le moteur de blog enregistre l’ensemble des mots clés d’un post dans un champ ‘tags’:

exemple de données du blog:

id          name                 tags
----------- -------------------- --------------------
1           post 1               sql,profiler,table
2           post 2               sql,performance
3           post 3               profilter
4           post 4               view,table

 

Chaque fois que quelqu’un fait une recherche par mots clés, une table de cache de ces ensembles de mots clés est stockée en base pour fournir ultérieurement des données à la fonctionnalité d’auto-suggestion du champ de recherche.

exemple de donnée de cette table:

id          data
----------- --------------------------------
1           sql,performance
2           profiler
3           table,performance,view

 

Le challenge

Vous devez trouver pour chaque recherche effectuée dans la table d’historique tous les posts correspondants en indiquant le nombre de mots clés correspondants. Un post correspondant à la recherche doit contenir au moins un mot clé associé figurant dans la liste des mots clés de la recherche.

Par rapport aux exemples de données précédents voici la table résultante que vous devez trouver:

ID data                    name     tags                 RELEVANCE
-- ----------------------- -------- -------------------- -----------
1  sql,performance         post 2   sql,performance      2
1  sql,performance         post 1   sql,profiler,table   1
2  profiler                post 1   sql,profiler,table   1
3  table,performance,view  post 4   view,table           2
3  table,performance,view  post 1   sql,profiler,table   1
3  table,performance,view  post 2   sql,performance      1
  1. Conditions:
  • Vous devez écrire une seule requête pour aboutir au résultat souhaité.
  • Merci d’utiliser le code d’exemple ci-dessous pour votre requête et de tester qu’elle fonctionne correctement avec celui-ci
  • envoyez vos solutions par mail sur challenge at rui point fr
  • Pour éviter les erreurs envoyez vos solutions dans un fichier .sql attaché à votre mail avec les données fournies et votre solution.
  • Vous avez jusqu’au 1er mai 2009 pour envoyer vos réponses
  • vous pouvez poser vos questions dans les commentaires (vos réponses par mail uniquement)

 

Merci et bon challenge!


Sample Data:

DECLARE @filter TABLE (id INT IDENTITY, data nvarchar(32))
insert into @filter (data) values ('sql,performance')
insert into @filter (data) values ('profiler')
insert into @filter (data) values ('table,performance,view')
 
DECLARE @blog TABLE (id INT IDENTITY, name nvarchar(20), tags nvarchar(20))
insert into @blog (name,tags) values ('post 1','sql,profiler,table')
insert into @blog (name,tags) values ('post 2','sql,performance')
insert into @blog (name,tags) values ('post 3','profilter')
insert into @blog (name,tags) values ('post 4','view,table')
Publié samedi 25 avril 2009 01:51 par Rui
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires


Les 10 derniers blogs postés

- [Conf’SharePoint] Dernier rappel ! :-) par Le blog de Patrick [MVP SharePoint] le il y a 53 minutes

- [ #SharePoint 2013 ] les modèles de sites standards… par Le blog de Patrick [MVP SharePoint] le il y a 59 minutes

- 10 erreurs de compréhension concernant SharePoint… par Le blog de Patrick [MVP SharePoint] le il y a 1 heure et 35 minutes

- Conf’SharePoint : 10 bonnes raisons pour ne pas la rater par Le petit blog de Pierre / Pierre's little blog le 05-14-2013, 02:24

- [Event] Soirée de lancement Agile .NET France à Lyon par Blog Agile/ALM de Vincent THAVONEKHAM le 05-13-2013, 01:29

- .NET / Debug : inspection de la mémoire d'applications .NET (dump ou processus live) : première livraison d'une librairie .NET par Microsoft par CoqBlog le 05-11-2013, 22:21

- SharePoint : Incompatibilité avec Internet Explorer 10 (IE10) par Blog Technique de Romelard Fabrice le 05-08-2013, 16:29

- AutoSPInstaller pour SharePoint 2013 maintenant disponible en “RTM” par Julien Chable le 05-06-2013, 23:30

- [TFS2010] A la recherche du Shelveset perdu par Blog de Jérémy Jeanson le 05-03-2013, 21:46

- .NET / Debug post-mortem : obtenir le fichier mscordacwks.dll correspondant à un dump quand on n'a plus d'accès direct à ce fichier par CoqBlog le 04-28-2013, 19:57