powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Не могу понять как решить подскажите
25 сообщений из 25, страница 1 из 1
Не могу понять как решить подскажите
    #39107594
symmetry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть какая то таблица(t1) в которой есть поля id, user_id. Нужно сосчитать сколько юзеров зашло новых и сколько старых.
Пример:
(id,user_id)
(1,4)
(2,6)
(3,8)
(4,4)
(5,9)
(6,4)
(7,6)
(8,6)
(9,11)
(10,12)
Должно вывести так:
(Первичные_юзеры, Вторичные_юзеры)
(4,6)
...
Рейтинг: 0 / 0
Не могу понять как решить подскажите
    #39107599
sagengu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
symmetry, и вас не возможно понять.

как вы определяете кто новый юзер а кто старый?
первичный и вторичные это кто? новый и старый?
зашло за какой то промежуток?

дали уравнение без неизвестной и с малым количеством данных.
перефразируйте вопрос более информативно.
...
Рейтинг: 0 / 0
Не могу понять как решить подскажите
    #39107605
symmetry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sagengu, если в поле user_id он присутствует один раз значит он первичный(то есть заходил один раз) например как юзер 8,9,11,12, а другие юзеры заходили несколько раз их в Вторичные.
Зашло за промежуток мне просто нужно узнать сколько заходило с начала 2015 года то есть where date>='01.01.2015'
...
Рейтинг: 0 / 0
Не могу понять как решить подскажите
    #39107622
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
symmetry,

почитать про count(...) | count(distinct ...)
...
Рейтинг: 0 / 0
Не могу понять как решить подскажите
    #39107626
p2.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
symmetry,

group by по пользователю + group by по count=1
...
Рейтинг: 0 / 0
Не могу понять как решить подскажите
    #39107629
symmetry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да я уже побывал и у меня не получилось, может конечно я не так делал я ещё новичок. Но суть в чем - когда берёшь SELECT user_id, COUNT(*) то дальше можно сравнивать если каунт=1 то плюсуем первичного если <>1 то значит вторичный плюсуем но если берём SELECT id, user_id, COUNT(*) тогда не работает. Подскажите способ? Я пишу функцию коротая возвращает таблицу.
...
Рейтинг: 0 / 0
Не могу понять как решить подскажите
    #39107635
p2.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гипотетический sql:
select count(user_id), count(user_id) filter(where count(*) = 1)
from таблица
group by user_id
...
Рейтинг: 0 / 0
Не могу понять как решить подскажите
    #39107650
symmetry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Не могу понять как решить подскажите
    #39107695
symmetry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По count я сделал и так получилось но сказали надо именно чтобы был каждый id задействован а не как у меня я смотрю если коунт=1 то первичный ELSE вторичный.
...
Рейтинг: 0 / 0
Не могу понять как решить подскажите
    #39107708
symmetry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
получается у меня 40353+17622=57975 строк задействовано а должно быть 97652
...
Рейтинг: 0 / 0
Не могу понять как решить подскажите
    #39107754
Lonepsycho
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
symmetry,

тогда у вас наверное анализы не те. догадка конечно, но думаю вы несчитаете юзверей которые зарегистрированы, но ещё не логинились. такое возможно если считаете из лога подключений, а не юзерс лефт джон логинс...
...
Рейтинг: 0 / 0
Не могу понять как решить подскажите
    #39107765
symmetry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да там не обязательно может стоять user_id мне нужно в общем посчитать брав каждый id и затем смотреть есть ли во второй колонке(допустим это user_id) такое же значения. Если таких значения больше одного значит это точно не первичный.
Или тут совсем другой алгоритм надо?
...
Рейтинг: 0 / 0
Не могу понять как решить подскажите
    #39107829
sagengu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
symmetry, какими таблицами вы можете оперировать? напишите их сюда со всеми колонками.
...
Рейтинг: 0 / 0
Не могу понять как решить подскажите
    #39107860
symmetry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну по сути только одна нужна. t1(id, client_id, create_date)
Тут я отсортировал по client_id и видно что некоторые были несколько раз 62(3раза), 67(2раза), 73(2 раза), 99(2раза) а другие 74,79,94,97 один раз. В итоге нужно по каждому полю id смотреть какой клиент первичный или повторный.
Из этого куска должно получится такой ответ:
(Первичный, Повторный)
( 4 , 9 )
Как получить такое?
...
Рейтинг: 0 / 0
Не могу понять как решить подскажите
    #39107869
sagengu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
symmetryКак получить такое?
в упор не вижу количество входов? куда потерялось это условие?

сегодня на всех магнитные бури действуют?
...
Рейтинг: 0 / 0
Не могу понять как решить подскажите
    #39107885
symmetry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sagengu, как понять количество входов? у меня в таблице такого вообще нет.
Может я как то не так объясняю допустим смотри первый id 7206520 у него клиент_ид=62 мы смотрим существуют ли ещё такие поля по id где клиент_ид тоже равен 62. Да в итоге мы видим что есть значит нам нужно записать результат по даным id 720652 client_id 62 в допустим Вторичные. Записали смотрим дальше также 62 значит тоже в Вторичные. И так далее до id 696279 client_id 74 смотрим больше такого клиента_ид нету значит заносим его в первичные. В итоге должна вывестись таблица:
(Первичные, Вторичные)
(____4____ ,____9____ )
...
Рейтинг: 0 / 0
Не могу понять как решить подскажите
    #39107886
p2.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
symmetry(Первичный, Повторный)назвать вещи своими именами: единичный, все.
шаблон запроса я привел. пилите, шура, пилите. или платите за работу.
...
Рейтинг: 0 / 0
Не могу понять как решить подскажите
    #39107887
symmetry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К сожалению у нас видимо старая версия постгреса там нет filter.
...
Рейтинг: 0 / 0
Не могу понять как решить подскажите
    #39107913
Фотография zasandator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
symmetry,

тынц

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select id, user_id,
  case qty
    when 1 then 'первичные'
    else 'вторичные'
  end
from
(
  select *, count(*) over (partition by user_id) as qty
  from tvoya_tablica
) t



так не?

ps: сори если напутал с синтаксисом, все таки занимаюсь MS-SQL ))))). Хотя оконные функции везде одинаковые
...
Рейтинг: 0 / 0
Не могу понять как решить подскажите
    #39107919
sagengu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
это ваши слова из первого поста.
авторНужно сосчитать сколько юзеров зашло новых и сколько старых.

я прежде чем создать тему с вопросом, гуглю, стараюсь составить вопрос более понятно.
большая часть вопросов отпадает после 10 минут работы над хорошо поставленным вопросом, решения оказываются очевидными.
кто то говорил "Хорошо поставленный вопрос уже половина ответа."
...
Рейтинг: 0 / 0
Не могу понять как решить подскажите
    #39107953
symmetry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zasandator, Спасибо вам но к сожалению он первичных почему то делает не всех)
Видно что 74,79,94, и 97 должны быть первичными. Голова уже болит от этой непонятности.

sagengu, Да я понимаю я теоретически знаю как решить а практически не получается как надо.
...
Рейтинг: 0 / 0
Не могу понять как решить подскажите
    #39107982
Фотография zasandator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
symmetryzasandator, Спасибо вам но к сожалению он первичных почему то делает не всех)
Видно что 74,79,94, и 97 должны быть первичными. Голова уже болит от этой непонятности.

sagengu, Да я понимаю я теоретически знаю как решить а практически не получается как надо.

Да Вы что? Ну была ссылка в предыдущем посте с примерами на постгри оконными функциями. ну и для отладки запрос такой посмотрите

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
select id, user_id,
  qty,
  case qty
    when 1 then 'первичные'
    else 'вторичные'
  end
from
(
  select *, count(*) over (partition by user_id) as qty
  from tvoya_tablica
) t



В частности поле qty - покажет Вам сколько раз user_id встретился в таблице.
...
Рейтинг: 0 / 0
Не могу понять как решить подскажите
    #39107986
Фотография zasandator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
symmetryzasandator, Спасибо вам но к сожалению он первичных почему то делает не всех)
Видно что 74,79,94, и 97 должны быть первичными. Голова уже болит от этой непонятности.

sagengu, Да я понимаю я теоретически знаю как решить а практически не получается как надо.

Ну и...

select * from tvoya_tablica where user_id in (74,79,94,97) order by user_id

выдаст 4 строки всего? ))))
...
Рейтинг: 0 / 0
Не могу понять как решить подскажите
    #39107991
Lonepsycho
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
symmetry,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
SELECT count(d.user_id) filter(WHERE d.cnt = 1) AS primary, 
       count(d.user_id) /*filter(WHERE d.cnt > 1)*/ AS secondary 
FROM (
  SELECT 
    v.user_id,
    count(v.id) AS cnt 
  FROM 
    (VALUES 
      (1, 4),
      (2, 6),
      (3, 8),
      (4, 4),
      (5, 9),
      (6, 4),
      (7, 6),
      (8, 6),
      (9, 11),
      (10, 12)
    ) AS v (id, user_id)
  GROUP BY
    v.user_id
) AS d

без окон, без дверей...
...
Рейтинг: 0 / 0
Не могу понять как решить подскажите
    #39108509
symmetry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем разобрался) Там если что было не 4 и не 10 строк я же сказал это пример там в итоге 100к строк гдет.
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Не могу понять как решить подскажите
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]