Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3 4 5   вперед  Ctrl      все
 Получить распределение  [new]
Стас0н
Member

Откуда:
Сообщений: 106
Привет всем!

Есть такая таблица im:
+-----------+----------------+
| site_id | visitor_id     |
+-----------+----------------+
|         8 | 14441319829303 |
|         8 | 14441319829303 |
|         8 | 14441319829303 |
|         8 | 16664540522788 |
|         8 | 31051333527785 |
|         8 | 31051333527785 |
|         8 | 43544524742951 |
|         9 | 43544524742951 |
|         9 | 59231398610260 |
|         9 | 62321349676603 |
+-----------+----------------+

Таблица содержит сведения о почещении определенных пользователей определеных сайтов. Мне нужно получить распределение частоты посещения пользователей определенных сайтов, т.е. что-то такое:
    site_ID        1    2    3    4    5
    ----------    ---  ---  ---  ---  ---
    1             967  576  856  234  
    2             576  947  847  987  324
    .
    .

Т.е. один раз на сайт "1" зашло 967 пользователей, 2 раза - 576 и т.д.

Помогите разобраться с тем, как написать запрос, а то что-то вообще в тупике
4 сен 14, 15:08    [16535446]     Ответить | Цитировать Сообщить модератору
 Re: Получить распределение  [new]
_human
Member

Откуда:
Сообщений: 569
Стас0н,

PIVOT избавит от всех проблем.
4 сен 14, 15:12    [16535491]     Ответить | Цитировать Сообщить модератору
 Re: Получить распределение  [new]
Glory
Member

Откуда:
Сообщений: 104751
Стас0н
Т.е. один раз на сайт "1" зашло 967 пользователей, 2 раза - 576 и т.д.

Т.е. если кто-то заходил на сайт 10 000 раз, то должно быть в результате 10 001 столбец ?
4 сен 14, 15:14    [16535505]     Ответить | Цитировать Сообщить модератору
 Re: Получить распределение  [new]
Стас0н
Member

Откуда:
Сообщений: 106
Glory, да, верно
4 сен 14, 15:16    [16535532]     Ответить | Цитировать Сообщить модератору
 Re: Получить распределение  [new]
Glory
Member

Откуда:
Сообщений: 104751
Стас0н
Glory, да, верно

Это невозможно в MSSQL
4 сен 14, 15:17    [16535546]     Ответить | Цитировать Сообщить модератору
 Re: Получить распределение  [new]
Стас0н
Member

Откуда:
Сообщений: 106
Glory, а можно гистограммой отобразить данные?
4 сен 14, 15:21    [16535598]     Ответить | Цитировать Сообщить модератору
 Re: Получить распределение  [new]
Glory
Member

Откуда:
Сообщений: 104751
Стас0н
Glory, а можно гистограммой отобразить данные?

Это тоже невозможно. Потому что MSSQL не занимается отображением.
4 сен 14, 15:24    [16535629]     Ответить | Цитировать Сообщить модератору
 Re: Получить распределение  [new]
Стас0н
Member

Откуда:
Сообщений: 106
Glory, а почему не возможно вывести 10001 столбец? Только из соображений того, что сложночитабельно будет?
4 сен 14, 16:21    [16535979]     Ответить | Цитировать Сообщить модератору
 Re: Получить распределение  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
Стас0н
Glory, а почему не возможно вывести 10001 столбец? Только из соображений того, что сложночитабельно будет?
Смешно прям...

Объект SQL Server Компонент Database EngineМаксимальный размер или количество SQL Server (64-разрядная версия)
Столбцов на инструкцию SELECT4,096
SQL 2014
http://msdn.microsoft.com/ru-ru/library/ms143432.aspx
4 сен 14, 16:37    [16536073]     Ответить | Цитировать Сообщить модератору
 Re: Получить распределение  [new]
Стас0н
Member

Откуда:
Сообщений: 106
iap, спасибо
4 сен 14, 16:51    [16536150]     Ответить | Цитировать Сообщить модератору
 Re: Получить распределение  [new]
Wlr-l
Member

Откуда:
Сообщений: 606
Стас0н,

"а можно гистограммой отобразить данные?"
"Это тоже невозможно. Потому что MSSQL не занимается отображением."

Да, отобразить невозможно, но подготовить данные для отображения гистограммы - возможно и нужно!

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

1, 2, 3, 4, 5, 5-10, 10-20, 20-50, 50-100, ...

Использовать case + group by.
5 сен 14, 15:40    [16540984]     Ответить | Цитировать Сообщить модератору
 Re: Получить распределение  [new]
Glory
Member

Откуда:
Сообщений: 104751
Wlr-l
Да, отобразить невозможно, но подготовить данные для отображения гистограммы

А все отображатели гистограмм используют какой то единый "формат гистограммы" ?
5 сен 14, 15:43    [16541006]     Ответить | Цитировать Сообщить модератору
 Re: Получить распределение  [new]
Wlr-l
Member

Откуда:
Сообщений: 606
Wlr-l, забыл сказать, проклятый склероз,

"частота посещения" <> "количество посещений".
5 сен 14, 15:44    [16541011]     Ответить | Цитировать Сообщить модератору
 Re: Получить распределение  [new]
Wlr-l
Member

Откуда:
Сообщений: 606
Glory, гистограмма - это обычная таблица, на клиенте отображается по умолчанию любыми "сетками". Чаще всего используют графическое представление, наглядно, но когда столбцов не очень много.
5 сен 14, 15:55    [16541104]     Ответить | Цитировать Сообщить модератору
 Re: Получить распределение  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4902
Стас0н
частоты посещения пользователей определенных сайтов,


Слово "Частота" подразумевает, что есть какое-то время (сколько раз за день, например). Про него в постановке ничего не сказано, а оно нужно.
5 сен 14, 15:55    [16541107]     Ответить | Цитировать Сообщить модератору
 Re: Получить распределение  [new]
Glory
Member

Откуда:
Сообщений: 104751
Wlr-l
Glory, гистограмма - это обычная таблица, на клиенте отображается по умолчанию любыми "сетками".

Ну так у ТС-а уже есть обычная таблица
5 сен 14, 15:59    [16541134]     Ответить | Цитировать Сообщить модератору
 Re: Получить распределение  [new]
Wlr-l
Member

Откуда:
Сообщений: 606
a_voronin,

частота, связана не только со временем (это обратные величины). В данном случае, скорее всего, это
(посещение конкретного пользователя)/(общее число посещений).


Glory

Да все таблицы обычные :столбцы и строки. Только данные в них представлены по разному.
5 сен 14, 16:04    [16541176]     Ответить | Цитировать Сообщить модератору
 Re: Получить распределение  [new]
Glory
Member

Откуда:
Сообщений: 104751
Wlr-l
Glory

Да все таблицы обычные :столбцы и строки. Только данные в них представлены по разному.

Какой смысл тогда в вашем преобразовании таблицы к "1, 2, 3, 4, 5, 5-10, 10-20, 20-50, 50-100, ..." ?
5 сен 14, 16:05    [16541189]     Ответить | Цитировать Сообщить модератору
 Re: Получить распределение  [new]
Wlr-l
Member

Откуда:
Сообщений: 606
a_voronin, Да Вы правы, за заданный период (час, день, ...).
5 сен 14, 16:05    [16541192]     Ответить | Цитировать Сообщить модератору
 Re: Получить распределение  [new]
Wlr-l
Member

Откуда:
Сообщений: 606
Glory,
Есть такая наука "Статистика", в ней есть раздел "Представление статистических данных". Дальнейшее обсуждение не имеет смысла, поскольку выходит за рамки MS SQL Server.
5 сен 14, 16:10    [16541224]     Ответить | Цитировать Сообщить модератору
 Re: Получить распределение  [new]
Glory
Member

Откуда:
Сообщений: 104751
Wlr-l
Есть такая наука "Статистика", в ней есть раздел "Представление статистических данных".

И что там говорится, что нужно таблицу преобразовать к виду "1, 2, 3, 4, 5, 5-10, 10-20, 20-50, 50-100, ..." ?

Wlr-l
Дальнейшее обсуждение не имеет смысла, поскольку выходит за рамки MS SQL Server.

Да я смотрю, многие ваши ответы "выходят за рамки MS SQL Server"
5 сен 14, 16:12    [16541235]     Ответить | Цитировать Сообщить модератору
 Re: Получить распределение  [new]
Wlr-l
Member

Откуда:
Сообщений: 606
Glory,

Нет. Я сказал ", например,". У ТС 1,2,3,4,5. Вы спросили, если 10 001?

Можно и так : 1, 2, 3, 4, 5, все остальное. Это зависит от требований аналитиков.
5 сен 14, 16:16    [16541261]     Ответить | Цитировать Сообщить модератору
 Re: Получить распределение  [new]
Glory
Member

Откуда:
Сообщений: 104751
Wlr-l
Можно и так : 1, 2, 3, 4, 5, все остальное. Это зависит от требований аналитиков.

Ну так может нужно сначала узнать
- эти требования аналитиков
- средство визуализации
5 сен 14, 16:18    [16541270]     Ответить | Цитировать Сообщить модератору
 Re: Получить распределение  [new]
Wlr-l
Member

Откуда:
Сообщений: 606
Glory,

Согласен, я всего лишь сказал, что можно подготовить данные для формирования гистограмм и как это сделать. Сколько будет столбцов, какие будут выбраны интервалы для каждого столбца - это уже детали. Так же детали - строки: наличие промежуточных результатов (например, посещение по регионам, полу, возрасту) и итоговых результатов. Возможно нужно будет еще использовать и group by rollup() или group by cube.
5 сен 14, 16:25    [16541321]     Ответить | Цитировать Сообщить модератору
 Re: Получить распределение  [new]
Glory
Member

Откуда:
Сообщений: 104751
Wlr-l
Возможно нужно будет еще использовать и group by rollup() или group by cube.

А возможно просто select * from table пойдет в Excel, который сам построит все, что нужно.
5 сен 14, 16:26    [16541335]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3 4 5   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить