|
Сгруппировать по одному из двух параметров
|
|||
---|---|---|---|
#18+
Здравствуйте Подскажите, пожалуйста, можно ли сгруппировать поля по двум колонкам так, чтобы для "попадания" в группу было достаточно совпасть по одной колонке? Т.е. если у пользователей совпадает LoginName или Year они попадают в одну группу. Данные для примера: create table #TestTable (CustomerID int, LoginName Varchar(20), Year Varchar(10)) insert into #TestTable values ('1', 'Den', '1990'), ('2', 'Sarah', '1990'), ('3', 'Anton', '1977'), ('4', 'James', '1965'), ('5', 'Den', '1994'), ('6', 'Cristian', '1983'), ('7', 'Sarah', '1997'), ('8', 'Mario', '1986'), ('9', 'Mario', '1983') Желаемый результат: GroupID___CustomerID___LoginName____Year ___1_________1_________Den_________1990 ___1_________2_________Sarah________1990 ___1_________5_________Den_________1994 ___1_________7_________Sarah_______1997 ___2_________6_________Cristian______1983 ___2_________8_________Mario_______1986 ___2_________9_________Mario_______1983 ___3_________3_________Anton_______1977 ___4_________4_________James_______1965 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2021, 12:53 |
|
Сгруппировать по одному из двух параметров
|
|||
---|---|---|---|
#18+
хз даже ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2021, 14:14 |
|
Сгруппировать по одному из двух параметров
|
|||
---|---|---|---|
#18+
задача на поиск связных графов ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2021, 14:49 |
|
Сгруппировать по одному из двух параметров
|
|||
---|---|---|---|
#18+
хорошая задача однако :) Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2021, 15:51 |
|
Сгруппировать по одному из двух параметров
|
|||
---|---|---|---|
#18+
Luna17 Здравствуйте Подскажите, пожалуйста, можно ли сгруппировать поля по двум колонкам так, чтобы для "попадания" в группу было достаточно совпасть по одной колонке? A 1 А 2 Б 1 Б 3 Это одна группа? Если да - одним запросом не получится. Посетитель задача на поиск связных ПОДграфов ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2021, 17:12 |
|
Сгруппировать по одному из двух параметров
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2021, 17:14 |
|
Сгруппировать по одному из двух параметров
|
|||
---|---|---|---|
#18+
court Код: sql 1. 2. 3. 4. 5. 6.
Плохо. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2021, 17:30 |
|
Сгруппировать по одному из двух параметров
|
|||
---|---|---|---|
#18+
aleks222, оцените тогда и мое решение. или покажете сразу как хорошо? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2021, 17:32 |
|
Сгруппировать по одному из двух параметров
|
|||
---|---|---|---|
#18+
aleks222 court Код: sql 1. 2. 3. 4. 5. 6.
Плохо. (типа всех LoginName=Den отметить) ... но сильно уж это "замороченно" показалось ) или что-то ещё имеешь в виду ? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2021, 17:50 |
|
Сгруппировать по одному из двух параметров
|
|||
---|---|---|---|
#18+
Luna17, Den 1983 - это какая группа 1 или 2? задача на поиск связных графов ага ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2021, 22:17 |
|
Сгруппировать по одному из двух параметров
|
|||
---|---|---|---|
#18+
court aleks222 пропущено... Плохо. (типа всех LoginName=Den отметить) ... но сильно уж это "замороченно" показалось ) или что-то ещё имеешь в виду ? Надо сразу все группы обрабатывать, а не по-одной. Надо выдавливать из себя императивного программизда. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2021, 06:13 |
|
Сгруппировать по одному из двух параметров
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2021, 07:58 |
|
Сгруппировать по одному из двух параметров
|
|||
---|---|---|---|
#18+
aleks222, A 1 А 2 Б 1 Б 3 да, это одна группа ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2021, 12:04 |
|
Сгруппировать по одному из двух параметров
|
|||
---|---|---|---|
#18+
Владислав Колосов Luna17, Den 1983 - это какая группа 1 или 2? задача на поиск связных графов ага Если бы появился Den 1983 первая и вторая группа объеденились бы под айди 1 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2021, 12:06 |
|
Сгруппировать по одному из двух параметров
|
|||
---|---|---|---|
#18+
Luna17 aleks222, A 1 А 2 Б 1 Б 3 да, это одна группа Изучайте наши тезисы aleks222 Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
Чуток их, канешно, можно оптимизировать. Но суть та. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2021, 14:14 |
|
Сгруппировать по одному из двух параметров
|
|||
---|---|---|---|
#18+
Luna17, Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2021, 14:57 |
|
Сгруппировать по одному из двух параметров
|
|||
---|---|---|---|
#18+
Oleg_SQL, впечатлило ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2021, 15:07 |
|
Сгруппировать по одному из двух параметров
|
|||
---|---|---|---|
#18+
spenov, а зря. увеличь длину цепочки и посмотри результат ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2021, 15:56 |
|
Сгруппировать по одному из двух параметров
|
|||
---|---|---|---|
#18+
Посетитель, мне понравилось. на конкретно приведенных данных работает же. если добавить например строку ('10', 'James', '1997'), то сломается :) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2021, 15:59 |
|
Сгруппировать по одному из двух параметров
|
|||
---|---|---|---|
#18+
spenov Посетитель, мне понравилось. на конкретно приведенных данных работает же. если добавить например строку ('10', 'James', '1997'), то сломается :) да, не учел такое. вот с поправкой (группы не упорядочивал) Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2021, 16:06 |
|
Сгруппировать по одному из двух параметров
|
|||
---|---|---|---|
#18+
Oleg_SQL, а если цепочка будет длиннее? если я правильно понял, у вас обрабатывается первый и второй шаг. а шагов может быть произвольное количество. мое решение очень похоже на ваше, но я накапливаю узлы в строке. а у вас вроде как нет накопления информации о пройденных узлах. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2021, 16:12 |
|
|
start [/forum/topic.php?fid=46&fpage=17&tid=1684395]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 267ms |
total: | 415ms |
0 / 0 |