Корректный запрос на уникальность данных
pihva
Дата: 20.12.2012 14:18:09
Есть уникальный товар, и есть регионы, где этот товар имеется.
Как получить корректное количество уникальных товаров так чтобы он не суммировался по регионам?
Например
москва сочи владивосток
товар1 есть есть нет
товар2 есть есть есть
товар3 есть нет нет
Через функцию count distinct получается что он суммирует все строки где есть этот товар, а это неправильно. Уникальных товаров должно быть 3, а он выдает что уникальных товаров - 6. (то есть сумма всех "есть")
tanglir
Дата: 20.12.2012 14:28:00
| pihva |
|---|
| Через функцию count distinct |
покажите структуру таблицы и запрос с дистинктом.
trew
Дата: 20.12.2012 14:40:47
pihva,
SELECT Регион, COUNT(DISTINCT Товар) as nn
FROM Таблица
GROUP BY Регион
pihva
Дата: 20.12.2012 14:51:22
trew,
Он выдает 6 таким запросом.
Таблица изначально выглядит примерно так:
Товар Регион
Товар1 Москва
Товар1 Сочи
Товар2 Москва
Товар2 Сочи
Товар2 Владивосток
Товар3 Москва
По идее уникальных товара 3?
А он видит как
3 в москве
2 в сочи
1 во Владивостоке
и суммирует их
trew
Дата: 20.12.2012 14:57:13
pihva,
Так если вообще, зачем Регион нужен в запросе? Убрать.
pihva
Дата: 20.12.2012 15:00:54
trew,
В этом и проблема. убрать нельзя.
Так как в разрезе регионов уникальные позиции верно считает, а общее количество по всем регионам неверно,
задача в том, чтобы еще и общее значение было корректным
trew
Дата: 20.12.2012 15:02:15
pihva,
SELECT COUNT(DISTINCT Товар) as nn
FROM Таблица
Может тестовые данные приведете, и покажете что неверно?
tanglir
Дата: 20.12.2012 16:16:20
| trew |
|---|
pihva,
SELECT COUNT(DISTINCT Товар) as nn
FROM Таблица
Может тестовые данные приведете, и покажете что неверно? |
+1
Akina
Дата: 20.12.2012 16:43:10
| pihva |
|---|
Так как в разрезе регионов уникальные позиции верно считает, а общее количество по всем регионам неверно, задача в том, чтобы еще и общее значение было корректным |
Получение в одном запросе данных с разными уровнями группировки - это называется "желать странного"... MS SQL-евского WITH TIES тут нет.
javajdbc
Дата: 20.12.2012 21:02:28
| Akina |
|---|
| pihva |
|---|
Так как в разрезе регионов уникальные позиции верно считает, а общее количество по всем регионам неверно, задача в том, чтобы еще и общее значение было корректным |
Получение в одном запросе данных с разными уровнями группировки - это называется "желать странного"... MS SQL-евского WITH TIES тут нет. |
WITH ROLLUP делает суммирование сум :-)