У меня есть таблица рейтингаагрегировать точек
- row1 = (V1, К1, 5);
- строка2 = (V2, K2, 7);
- строка2 = (V1, K1, 3);
мне нужно агрегировать очков в таблице AggregateRating таким образом, что таблица содержит
- ROW1 = (V1, K1, 8);
- строка2 = (V2, K2, 7);
I цикл один раз через рейтинговую таблицу и создать карту с помощью [ключ = (Col1, Col2), значение = Points] Если ключ существует добавить точки в другом месте создать новую запись на карту. Таблица рейтинга может содержать около 100+ записей, поэтому я хотел избежать нескольких проходов.
Это самый эффективный способ обойти это?
Если '+' в '100 +' не означает миллиарды, вы должны придерживаться чистой и эффективной реализации, как вы предложили. ** ** наиболее эффективные решения редко необходимы. – Howard
@Howard, какое более эффективное решение вы имеете в виду? Btw, если запрос сделан в миллиард раз, может оказаться важным уменьшить его сложность в 100 раз. –
@Boris Точно, что я имел в виду. Существует разница между «наиболее эффективными» и «эффективными в реальном мире». В игру вступают все виды «грязных» вещей, таких как предварительная выборка, размеры строк кеша. И имеет значение, если у вас есть данные в миллиардном диапазоне, но не для '100 +'. В этом регионе вы должны держать решение простым и понятным, то есть эффективным для кодера и всех остальных, читающих ваш код (конечно, без ущерба для производительности системы). – Howard