WedX - журнал о программировании и компьютерных науках

Как выбрать запись с двумя разными почтовыми индексами в доступе ms с запросом sql

Я новичок в sql-скрипте. В настоящее время я пытаюсь написать sql-скрипт для выбора записи с двумя разными почтовыми индексами из таблицы в доступе ms с помощью sql-запроса. По какой-то причине это просто не работает для меня.

Пример: у меня есть следующая таблица resident_postcode :

Postcode      Name
1001          Alan
1002          James
1003          Alan
1004          Merry
1001          Merry

Я пишу sql-скрипт, чтобы выбрать имя с двумя разными почтовыми индексами и найти результат, подобный следующему:

Name
Alan
Merry

Я попытался запустить следующий скрипт, но по какой-то причине он просто не работает в MS Acess:

SELECT a.Name
FROM resident_postcode a
WHERE 1 < (SELECT count(b.Postcode) FROM resident_postcode b  WHERE b.Name= a.NameGROUP BY b.Name)

Кто-нибудь знает, что не так с моим скриптом?

18.02.2021

Ответы:


1

Если для любого имени нет повторения одного и того же почтового индекса, вы можете иметь имена с двумя почтовыми индексами, как показано ниже.

SELECT NAME FROM RESIDENT_POSTCODE
GROUP BY NAME
HAVING COUNT(POSTCODE)=2

Но если какой-либо почтовый индекс может быть указан более одного раза (например, 1001 указан более одного раза для Алан), вам необходимо использовать следующий запрос:

select name from (
 SELECT distinct NAME, postcode FROM RESIDENT_POSTCODE) 
group by name 
having count(*)=2

если вы хотите, чтобы все имена имели два или более 2 почтовых индекса, используйте следующий запрос:

select name from (
     SELECT distinct NAME, postcode FROM RESIDENT_POSTCODE) 
    group by name 
    having count(*)>=2
18.02.2021
  • @КитТ. . . Это не будет работать в MS Access, поэтому довольно удивительно, что вы это приняли. 18.02.2021
  • @GordonLinoff На самом деле я не был уверен в ответе, так как не использовал Access в качестве базы данных более десятилетий. Но с некоторым поиском, я думаю, это сработает нормально. Отличается ли оговорка виновником? 18.02.2021
  • MS Access не поддерживает count(distinct). 18.02.2021
  • Большое спасибо. Я отредактировал свой ответ. 18.02.2021
  • Теперь это неправильно. Вот почему я адресовал комментарий ОП. 18.02.2021
  • Наконец-то я проверил результат в ms access. Не может быть отличным от счета или наличия. 18.02.2021
  • Большое спасибо @GordonLinoff. 18.02.2021

  • 2

    Попробуйте с:

    SELECT [Name]
    FROM resident_postcode
    GROUP BY [Name]
    HAVING Count(*) > 1
    
    18.02.2021

    3

    Если вам нужны 2 или более разных почтовых индекса, вы можете использовать:

    SELECT NAME
    FROM RESIDENT_POSTCODE
    GROUP BY NAME
    HAVING MIN(POSTCODE) <> MAX(POSTCODE);
    

    Если вы хотите ровно два, вы можете использовать:

    SELECT NAME
    FROM (SELECT DISTINCT NAME, POSTCODE
          FROM RESIDENT_POSTCODE
         ) AS NP
    GROUP BY NAME
    HAVING COUNT(*) = 2;
    
    18.02.2021
    Новые материалы

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..


    Для любых предложений по сайту: [email protected]