UniqueIdentifierを文字列にする

あるテーブルに名前と別テーブルへのキー(guid)を保持している。 で、名前別にその件数をしらべて、それと同時に1件だけの場合はキーも出力するようにしたい。 2件以上の場合はアプリ側では無視するので何が入っていてもとりあえずはOK。

というのがあったけど、SQL作るのにハマってしまった。

SELECT name, count(name), max(key)
FROM Hoge
GROUP BY name

ってやりたかったけど、keyに集計関数使えないよってエラーが発生して一旦断念。

group by nameしたHogeとしてないHogeをJOINしてデータ取得しようとしたけど、なんかイケてない感じがして悩んでたら、 「keyを文字列(varchar)に変換してmaxとればいいんじゃね?」 みたいなことを教えてもらって、解決した。

SELECT name, count(name), max(convert(varchar(36), key)) as keyAsString
FROM Hoge
GROUP BY name