2017-07-07 4 views
0

一意の名前を持つ列 "categ"に基づいてsqliteテーブルから選択する必要があります。ここ は、私が持っているものです。sqlite列内の一意のセルを持つ最初の行のみを選択してください

|id  |val |categ 
|1  |any1 |categ1 
|2  |any2 |categ1 
|3  |any3 |categ2 
|4  |any4 |categ2 
|5  |any5 |categ2 
|6  |any6 |categ3 
|7  |any7 |categ3 
|8  |any8 |categ4 
|9  |any9 |categ4 
|10  |any10 |categ4 

そして、ここでは、私は、結果として必要なものです:

|id  |val |categ 
|1  |any1 |categ1 
|3  |any3 |categ2 
|6  |any6 |categ3 
|8  |any8 |categ4 

最初の行は列名です。フィルターは列 "categ"で行う必要があります。 私はそれぞれのカテゴリーから1行ずつ結果を得る必要があります。 カテゴリの名前は実際のテーブルの例と同じです。 "categ"の名前は人名です(例:John、Mary etc)

何か提案がありますか? Categ列

+0

[関連](https://stackoverflow.com/questions/8683547/only-select-first-row-of-repeating-value-in-a-column-in -sql) – glibdud

答えて

1

+0

完璧、私はそれが欲しかったように正確に働いた。ありがとう@CL – becoolflyer

-1

使用することで、グループの句は、あなたは、カテゴリごとに1つの行を取得するために、GROUP BYを使用することができます。 SQLiteのでは、することができますuse MIN() to control which row in a group to return

SELECT min(id) AS id, val, categ 
FROM MyTable 
GROUP BY categ; 
+0

Askerが各 'categ'に対して最初の' val'を得るために 'GROUP BY'をどのように使うことができるかを実証してください。 – glibdud

関連する問題