У меня есть таблица с именем PAYMENT
. В этой таблице у меня есть идентификатор пользователя, номер счета, почтовый индекс и дата. Я хотел бы найти все записи для всех пользователей, которые имеют более одного платежа в день с тем же номером счета.
ОБНОВЛЕНИЕ: Кроме того, должен быть фильтр, который только подсчитывает записи, почтовый индекс которых отличается.
Вот как выглядит таблица:
| user_id | account_no | почтовый индекс | дата | | 1 | 123 | 55555 | 12 декабря 2009 года | | 1 | 123 | 66666 | 12 декабря 2009 года | | 1 | 123 | 55555 | 13-DEC-09 | | 2 | 456 | 77777 | 14 декабря 2009 года | | 2 | 456 | 77777 | 14 декабря 2009 года | | 2 | 789 | 77777 | 14 декабря 2009 года | | 2 | 789 | 77777 | 14 декабря 2009 года |
Результат должен выглядеть примерно так:
| user_id | считать | | 1 | 2 |
Как бы вы выразили это в запросе SQL? Я думал сам присоединиться, но по какой-то причине мой счет неверен.
2
есть подсчет:4
вы, вероятно, захотите отказаться отAccount_no
группировки.Попробуйте этот запрос:
источник
Я бы не рекомендовал это
HAVING
ключевое слово для новичков, оно в основном для устаревших целей .Мне не ясно, что является ключом к этой таблице ( интересно, она полностью нормализована ?), Поэтому мне трудно следовать вашей спецификации:
Итак, я взял буквальное толкование.
Следующее более многословно, но может быть легче понять и, следовательно, поддерживать (я использовал CTE для таблицы,
PAYMENT_TALLIES
но это может бытьVIEW
:источник
источник