Правила Форума редакция от 22.06.2020 |
|
|
|
|
|
Опции темы | Опции просмотра | Language |
22.05.2013, 02:21 | #1 |
Пользователь
Пол: Регистрация: 27.01.2007
Адрес: Киев
Сообщений: 103
Репутация: 130
|
Выборка последних одинаковых данных
Есть таблица Recipients
id, id_mail, email, status (ИД, ИД письма, email, статус получения); 1, 1, '[email protected]', 'error'; 2, 1, '[email protected]', 'error'; 3, 2, '[email protected]', 'success'; 4, 2, '[email protected]', 'error'; 5, 3, '[email protected]', 'success'; 6, 3, '[email protected]', 'error'; 7, 4, '[email protected]', 'error'; 8, 4, '[email protected]', 'error'; Нужно выбрать пользователей, которые последние 3 раза не получили письмо, т.е. status='error' должно быть в 4, 3 и 2-й рассылке |
Реклама: | Рекомендуем супермаркет КНС - ASUS ROG Strix B550-A Gaming - Подарок каждому покупателю! | журнально-обеденные столы трансформеры | utr 60-35 a.3.35-2.2x30m.r | Магазин KNSneva.ru предлагает ASUS VA24DQSB - поставка техники в СПБ и города северо-запада России. | Выгодное предложение в КНС Нева - R5MP960G8 - корпоративные поставки в Санкт-Петербурге. |
22.05.2013, 20:18 | #2 |
Постоялец
Пол: Регистрация: 05.02.2007
Адрес: Москва
Сообщений: 662
Репутация: 271
|
Re: Выборка последних одинаковых данных
SELECT * FROM Recipients WHERE status='error' AND id_mail>=2;
__________________
Сергей Сергеевич |
30.05.2013, 14:31 | #3 |
Новичок
Пол: Регистрация: 30.05.2013
Сообщений: 7
Репутация: 0
|
Re: Выборка последних одинаковых данных
Нет, я думаю должно быть как-то так:
SELECT * FROM Recipients WHERE id in (SELECT id FROM Recipients GROUP BY status WHERE COUNT(*) > 2 AND status='error') |
21.07.2013, 16:19 | #4 |
Новичок
Пол: Регистрация: 24.02.2009
Сообщений: 19
Репутация: 1
|
Re: Выборка последних одинаковых данных
Интересная задачка, но условия недоработаны...
По предложенным решениям, последняя наиболее ближе к правильному, но выбирает/группирует пользователей неверно. Еще не ясна ситуация когда пользователь не получил письмо 3 раза подряд или вообще минимум 3 не полученных? Если интересуют минимум 3 не доставленных сообщения (я предполагаю нужны просто почтовые адреса) Код:
SELECT email, COUNT( * ) AS miss FROM recipients WHERE STATUS = 'error' GROUP BY email HAVING miss >2 |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
В одинаковых позах | mimi | Сплетни и Слухи со всего мира | 22 | 12.04.2018 17:33 |
Выборка записей из таблицы dbf | Diver_wing | Базы данных | 8 | 04.05.2013 23:59 |
Помогите, проблема в последних комментариях, [просмотреть последние комментарии], и д | Antilius | Вeб Дизайн | 1 | 22.05.2009 15:28 |
|
|