SELECT *
FROM table
GROUP BY book_id
HAVING SUM(author_id IN ('x', 'y', 'z')) = 3 Class Std Бюджет порта (PSE) Макс. мощность устройства (PD)
0 802.3af 15.4 W 0.44 - 12.95 W
1 802.3af 4.0 W 0.44 - 3.84 W
2 802.3af 7.0 W 3.84 - 6.49 W
3 802.3af 15.4 W 6.49 - 12.95 W
4 802.3at PoE+ 30 W 12.95 - 25.5 W lag() и lead() берут только по одной строке, а разрыв между активностями может быть больше
Ну самый быстрый - это всё же использование предрасчётного списка простых чисел (который обычно читается из внешнего файла). Благо такие списки существуют, в т.ч. в достаточно большом диапазоне (правда, места жрут не по-детски, но это всё равно лучше, чем то же, но считать).