Выбор одной строки из повторяющихся строк mysql/sqlite

Моя таблица (Data_A) состоит из столбцов:

_id | mac_address | bit 

Есть несколько строк с одинаковыми mac_address и бит может быть 0/1.
Я хочу построить sqlite-запрос, в котором я хочу выбрать _id из всех строк, чтобы каждая строка имела свой уникальный mac_address и предпочтение должно быть уделено выбору строки, которая имеет bit = 1,

2 ответа

Я думаю, что в SQLite работает следующее:

select a.*
from data_a a
where a._id = (select aa._id
               from data_a aa
               where aa.mac_address = a.mac_address
               order by aa.bit desc
               limit 1
              );

В SQLite 3.7.11 или более поздней версии вы можете просто выбирать целые строки из групп с помощью min()/max():

SELECT _id, mac_address, max(bit)
FROM Data_A
GROUP BY mac_address
Другие вопросы по тегам