列内の異なる値を数えたいと思います。列は、今、この列からのカウント値
Locations
Street1
Street2
Street3
Street1,Street2
Street2,
Street1,Street2,Street3
カウントなどのデータが
Street1ようにする必要があります含まれている(3)
STREET2(4)
Street3(2)
列内の異なる値を数えたいと思います。列は、今、この列からのカウント値
Locations
Street1
Street2
Street3
Street1,Street2
Street2,
Street1,Street2,Street3
カウントなどのデータが
Street1ようにする必要があります含まれている(3)
STREET2(4)
Street3(2)
これはLINQ to SQLを使用します。
テーブルのすべての行をクライアントに戻してから、LINQ to Objectsを使用してクエリを実行するのは簡単な方法です(実行することができれば)。
var query = myDataContext
.MyTable
.AsEnumerable()
.SelectMany(row => row.Locations.Split(','))
.GroupBy(location => location)
.Select(group => new { Location = group.Key, Count = group.Count() });
あなたは文字列の代わりにその形式でのシーケンスをしたい場合は、との最後の行に置き換えます。別のノートで
.Select(group => string.Format("{0} ({1})", group.Key, group.Count());
を、私はは強くデータベースを正規化勧めスキーマ区切られたリストを列に格納することはお勧めできません。
var result = Locations
.SelectMany(s => s.Split(','))
.GroupBy(s => s, (loc,b) => new { loc, b.ToList().Count});
データベース内でコンマ区切りになっていますか?それは人生を簡単にするつもりはない... –
wtf?あなたのデータベースは何ですか? SQL ServerまたはExcel? :) – RPM1984
@ RPM1984:linq-to-sqlタグは、SQL Serverを示します。 – Ani