|
Повторяющиеся значения в рамках одной группы
|
|||
---|---|---|---|
#18+
Народ, в очередной раз прошу помощи. Задача следующая, выявить повторные покупки у одного клиента одинаковых товаров и одинаковые покупки в целом по всем клиентам. Например один клиент покупает масло и хлеб постоянно, нужно по чекам посмотреть сколько таких чеков, в которых у одного клиента таких связок товаров (масло + хлеб) и в целом по всем продажам, сколько связок масло+хлеб у всех клиентов. Пример таблицы в аттаче, а так же два варианта вывода, которые должны получиться. Вариант вывода 1 - по всем клиентам, вывод 2 - в разрезе клиента. Я пробовал с помощью lag, но при проверке обычным join - данные не верные. SELECT articul_, d1, MAX(row_n) et FROM( SELECT articul_, d1, ROW_NUMBER() OVER(PARTITION BY ARTICUL_, d1 ORDER BY date_) Row_N FROM( SELECT * FROM( SELECT *, LAG(articul_, 1) OVER(PARTITION BY client_id, check_num ORDER BY articul_) AS d1 FROM table) y) E) t GROUP BY articul_, d1 ORDER BY et DESC; ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2020, 23:16 |
|
Повторяющиеся значения в рамках одной группы
|
|||
---|---|---|---|
#18+
Милейший, я, может быть и помог бы, но неужели ты думаешь, что кто-то будет качать твой ексель-файл, открывать его (а мне, например, для этого еще надо его на онедрайв закидывать) и руками копировать оттуда данные в сиквел? Напиши тут текстом DDL создания таблицы и инсерты с данными, тогда, очень возможно, будет тебе и помощь. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2020, 23:28 |
|
Повторяющиеся значения в рамках одной группы
|
|||
---|---|---|---|
#18+
Palkin, почитайте насчёт having, отфильтруйте те, у которых count(*) > 1. Получите тех, кто больше одного раза в сумме покапал один и тот же товар. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2020, 00:01 |
|
Повторяющиеся значения в рамках одной группы
|
|||
---|---|---|---|
#18+
Владислав Колосов Palkin, почитайте насчёт having, отфильтруйте те, у которых count(*) > 1. Получите тех, кто больше одного раза в сумме покапал один и тот же товар. Это в рамках одного товара, а мне нужны клиенты, которые покупали 2 товара одновременно в одном чеке несколько раз ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2020, 00:39 |
|
Повторяющиеся значения в рамках одной группы
|
|||
---|---|---|---|
#18+
fkthat Милейший, я, может быть и помог бы, но неужели ты думаешь, что кто-то будет качать твой ексель-файл, открывать его (а мне, например, для этого еще надо его на онедрайв закидывать) и руками копировать оттуда данные в сиквел? Напиши тут текстом DDL создания таблицы и инсерты с данными, тогда, очень возможно, будет тебе и помощь. :) CREATE TABLE sales ( client_id NVARCHAR(10) NOT NULL, date_ DATE NOT NULL, articul NVARCHAR(10) NOT NULL, check_num NVARCHAR(10) NOT NULL, ); INSERT INTO sales (client_id, date_, articul, check_num) VALUES ( 'id1', '01.01.2020', 'машинка', 'check1'), ( 'id1', '01.01.2020', 'кукла', 'check1'), ( 'id2', '03.01.2020', 'хлеб', 'check2'), ( 'id2', '03.01.2020', 'масло', 'check2'), ( 'id2', '03.01.2020', 'огурец', 'check2'), ( 'id1', '01.06.2020', 'машинка', 'check15'), ( 'id1', '01.06.2020', 'кукла', 'check15'), ( 'id2', '03.05.2020', 'хлеб', 'check4'), ( 'id2', '03.05.2020', 'масло', 'check4'), ( 'id3', '03.05.2020', 'сигареты', 'check65'), ( 'id3', '03.05.2020', 'спички', 'check65'); ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2020, 01:12 |
|
Повторяющиеся значения в рамках одной группы
|
|||
---|---|---|---|
#18+
Palkin Владислав Колосов Palkin, почитайте насчёт having, отфильтруйте те, у которых count(*) > 1. Получите тех, кто больше одного раза в сумме покапал один и тот же товар. Это в рамках одного товара, а мне нужны клиенты, которые покупали 2 товара одновременно в одном чеке несколько раз Вам уже известны пары (тройки, группки) товаров которые вы ищете, или вам также нужно найти популярные комбинации, заранее неизвестные? (Веревка, мыло) Если первое, то присутствие пары можно представить как новый товар, и искать его. Если второе, то задача недостаточно очерчена. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2020, 04:51 |
|
Повторяющиеся значения в рамках одной группы
|
|||
---|---|---|---|
#18+
НеофитSQL, Пары неизвестны, там несколько миллионов строк. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2020, 09:16 |
|
Повторяющиеся значения в рамках одной группы
|
|||
---|---|---|---|
#18+
Palkin Вариант вывода 1 - по всем клиентам, вывод 2 - в разрезе клиента. Я пробовал с помощью lag, но при проверке обычным join - данные не верные. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2020, 10:39 |
|
Повторяющиеся значения в рамках одной группы
|
|||
---|---|---|---|
#18+
А это, если я правильно вспомнил математику... Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2020, 10:55 |
|
Повторяющиеся значения в рамках одной группы
|
|||
---|---|---|---|
#18+
aleks222, Спасибо, все получилось)))) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2020, 12:18 |
|
Повторяющиеся значения в рамках одной группы
|
|||
---|---|---|---|
#18+
У меня как-то так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2020, 14:19 |
|
Повторяющиеся значения в рамках одной группы
|
|||
---|---|---|---|
#18+
fkthat У меня как-то так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Выдает чеки, а не артикулы ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2020, 09:45 |
|
|
start [/forum/topic.php?fid=46&gotonew=1&tid=1685496]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
9ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 132ms |
0 / 0 |