Я уверен, что на этот вопрос был дан ответ в другом месте, однако я изо всех сил пытаюсь найти правильную терминологию...
Вот некоторые данные (размеры аудитории Facebook, как это бывает), которые я собираю через регулярные промежутки времени.
Каждый тест представляет собой target, и есть два batches, 18 и 19 (но в полном наборе данных их будет намного больше).
+--------+-------+----------+-------+---------------------+
| target | batch | location | daily | created_at |
+--------+-------+----------+-------+---------------------+
| 53003 | 18 | Austria | 12117 | 2019-05-27 10:55:48 |
| 53003 | 19 | Austria | 12663 | 2019-05-29 01:18:25 |
| 53004 | 18 | Austria | 4999 | 2019-05-27 10:55:49 |
| 53004 | 19 | Austria | 4999 | 2019-05-29 01:18:26 |
| 53005 | 18 | Austria | 999 | 2019-05-27 10:55:50 |
| 53005 | 19 | Austria | 997 | 2019-05-28 22:19:25 |
+--------+-------+----------+-------+---------------------+
Я хочу фильтровать по дням, когда batch 18 и 19 для одного и того же target имеют одинаковое значение daily.
Итак, я получил бы что-то вроде следующего (потому что цель 53004 — единственная с одинаковым результатом за оба дня).
Примечание: важно то, что я хочу, чтобы каждая цель сравнивалась сначала отдельно, поэтому, если другая цель имеет daily=4999 для обеих партий, она будет учитываться отдельно, и если две цели по совпадению имеют, скажем, daily=123, но только для одной партии каждый, они также не будут считаться совпадением.
+--------+-------+----------+-------+---------------------+
| target | batch | location | daily | created_at |
+--------+-------+----------+-------+---------------------+
| 53004 | n/a | Austria | 4999 | n/a |
+--------+-------+----------+-------+---------------------+
(н/д просто указывают, что эти столбцы больше не будут одиночными значениями, и меня это не волнует.)
да, я удалил свой комментарий, я заметил это и после моего комментария, когда я еще раз перечитал вопрос ..
но, как бы то ни было, «Я хочу отфильтровать по дням, когда пакеты 18 и 19 для одной и той же цели имеют одинаковое дневное значение». и «Примечание: важно то, что я хочу, чтобы каждая цель сравнивалась сначала отдельно, поэтому, если другая цель имеет значение daily=4999 для обеих партий, она будет учитываться отдельно»., как это выглядит, данные примера и ожидаемые результаты не включают это.
Также может быть больше двух записей? Если нет, то ответ @stickybit выглядит как решение вашего вопроса.
@RaymondNijland да, может быть - «есть две партии, 18 и 19 (но в полном наборе данных будет намного больше)» - min () и max () все равно будут работать для большей группы, хотя предположительно?
в этом случае, как кажется, вы хотите выбрать MAX() в любом случае, я считаю, что данные вашего примера и ожидаемые результаты не совпадают. ответ stickybit - умный способ, если быстрее проверить, есть ли как минимум две записи в группе ..






Вы можете агрегировать и проверить в предложении HAVING, что минимум и максимум равны.
SELECT target,
'n/a' batch,
location,
max(daily) daily,
'n/a' created_at
FROM elbat
GROUP BY target,
location
HAVING min(daily) = max(daily);
@RaymondNijland, где значение
dailyодинаково для каждогоbatchв одном и том жеtarget.