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

Подсчет и группировка непустых значений в MySQL

Мне нужно подсчитать непустые (под которыми я подразумеваю строку, содержащую не менее 1 символа) строки, сгруппированные по определенному идентификатору. Например. мои данные могут выглядеть так:

form_id   mapping
1         'value_1'
1         ''
1         'value_2'
2         ''
2         NULL
3         'value_3'

и я хочу подсчитать непустые значения для каждой формы, поэтому я хочу, чтобы результаты выглядели так:

form_id   mapping_count
1         2
2         0
3         1

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

SELECT form_id, count(mapping) FROM table GROUP BY form_id

... но это будет включать в счет строки нулевой длины, чего я не хочу.

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

Я предполагаю, что мне нужен какой-то подзапрос, но у меня проблемы с его сборкой.

25.02.2010

Ответы:


1
SELECT  form_id, COUNT(NULLIF(TRIM(mapping), ''))
FROM    mytable
GROUP BY
        form_id

При этом не будут учитываться записи, которые не содержат хотя бы одного символа, отличного от пробела (включая строки с пробелами, пустые строки и NULL).

Если допустима непустая строка со всеми пробелами, используйте это:

SELECT  form_id, COUNT(NULLIF(mapping, ''))
FROM    mytable
GROUP BY
        form_id
25.02.2010
  • Отлично, спасибо за это - я не сталкивался с функцией NULLIF раньше. Именно то, что мне было нужно. :) 25.02.2010
  • Новые материалы

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

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

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

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

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

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

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