Nano Hash - криптовалюты, майнинг, программирование

Группировка по неразличимым столбцам и нормализация данных

У меня есть большая таблица (60 столбцов, 1,5 миллиона записей) денормализованных данных в MS SQL 2005, которая была импортирована из базы данных Access. Мне было поручено нормализовать и вставить эти данные в нашу модель данных.

Я хотел бы создать запрос, который использовал бы группировку, например, "номер_клиента", и возвращал бы набор результатов, который содержит только столбцы, которые не являются различными для каждого номера_клиента. Я не знаю, возможно ли это, но было бы здорово, если бы это было так.

Изменить: если в моей таблице 3 столбца (cust_num, cust_name_cust_address) и 5 ​​записей

|cust_num|cust_name|cust_address
|01      |abc      |12 1st street
|02      |cbs      |1 Aroundthe Way
|01      |abc      |MLK BLVD
|03      |DMC      |Hollis Queens
|02      |cbs      |1 Aroundthe Way

результаты моего желаемого запроса должны быть просто данными из cust_num и cust_name, потому что cust_address имеет разные значения для этой группы cust_num. cust_num имеет много адресов, но только одно cust_name.

Может ли кто-нибудь указать мне в правильном направлении?

Джим


  • Не могли бы вы опубликовать некоторые образцы данных и результирующий набор записей, который вы хотели бы получить? 19.01.2010

Ответы:


1
WITH    q AS
        (
        SELECT  *, ROW_NUMBER() OVER (PARTITION BY col1, col2, col3, … ORDER BY id) AS rn
        FROM    mytable
        )
SELECT  *
FROM    q
WHERE   rn = 2

При этом будут выбраны только те строки, которые имеют дубликаты во всех столбцах, перечисленных в предложении PARTITION BY (фактически будет выбран первый дубликат, если он есть).

19.01.2010
  • это то, о чем я просил, но это не решает мою проблему. Я отредактирую свой исходный вопрос. Я хотел бы сгруппировать свою таблицу по номеру клиента и вернуть все столбцы, которые повторяют значения для сгруппированного номера клиента. Например, если бы в very_large_table было одинаковым только имя_клиента, я бы получил возвращаемый набор только с номером_клиента и именем_клиента, но если бы клиент_адрес был одинаковым для каждого клиента, я бы получил все 3 столбца. 19.01.2010

  • 2

    Нет, это невозможно

    29.01.2010
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..