Выбор одной строки из повторяющихся строк 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