SQLite: выбор "максимальных" среди строк


Если нужно выбрать строки, имеющие некоторое максимальное (минимальное) значение, 
то на эту тему существует два классических решения:

1. Человекопонятное:

SELECT a.id, a.param, a.contents
FROM YourTable a
INNER JOIN (
    SELECT id, MAX(param) as maxpar
    FROM YourTable
    GROUP BY id
) b
ON a.id = b.id AND a.param = b.maxpar

2. Логическое, через JOIN:

SELECT a.*
FROM YourTable a
LEFT OUTER JOIN YourTable b
    ON a.id = b.id AND a.param < b.param
WHERE b.id IS NULL

Можно придумать и альтернативные варианты через вложенные подзапросы, WITH, EXISTS - 
но все они будут репликами этих двух базовых запросов.

Экзотические варианты для специфического синтаксиса:

SELECT * FROM t1 WHERE (id,param) IN (
  SELECT id, MAX(param) FROM t1 GROUP BY id
)

SELECT yt.id, yt.param
  FROM YourTable yt
    WHERE param = (SELECT max(param) FROM YourTable st WHERE yt.id=st.id)

SELECT * FROM
  (SELECT * FROM table_name ORDER BY id,param desc) temp
GROUP by id 

SELECT a.id, a.param
  FROM (SELECT id, param,
        ROW_NUMBER() OVER (PARTITION BY id ORDER BY param DESC) rank
        FROM YourTable) a
  WHERE a.rank = 1

#