2012-02-11 3 views
0

Законно ли это во всех версиях SQLite в Android (скажем, от Android 1.6 - вверх), чтобы иметь запрос следующим образом:Android-группа SQLite - все столбцы?

select _id, name, min(qty) min_qty, max(qty) max_qty 
from my_table 
group by name 

Обратите внимание: группировка по «имени» только не «_id» , Я заметил, что это действительно работает. Мне просто интересно, работает ли это как по назначению, так и на любой версии Android и устройстве. Мне нужен этот запрос, чтобы отображать минимальные и максимальные количества в моем ListView, но все равно есть _id одной из строк, сгруппированных - для моего ListView, чтобы получить его. Надеюсь, что это понятно.

+1

SQLite не зависит от Android, и запрос действителен для SQLite (а также MySQL), хотя и не для других баз данных. Предложение GROUP BY технически ANSI, хотя это не то, что поддерживает большинство баз данных (Oracle, SQL Server, DB2 и т. Д.). Я считаю, PostgreSQL 9.2 начал поддерживать «отсутствующий столбец» GROUP BY ... –

+0

OK спасибо большое. Во всяком случае, мне бы хотелось увидеть другое подтверждение. – Yar

+2

Чтобы добавить к тому, что сказал OMG, он работает правильно, если 'name' является Unique. Если он не уникален, возвращается один (более или менее случайный) '_id' из многих, связанных с именем' name'. Итак, если (как вы говорите) просто хотите один (любой) '_id' из одной из сгруппированных строк, вы можете его использовать. –

ответ

0

Основываясь на комментариях OMG Ponies и ypercube, я думаю, что могу ответить на этот вопрос: да, запрос действителен, а возвращаемый _id будет одной из групп.

Смежные вопросы