Cache ': техніка угрупування h2>
Євген Каратаєв p>
В
цій статті розглянемо технічну частину угруповання даних. За базу
даних виберемо СУБД Cache ', оскільки в ній існує можливість самостійно
використовувати власні структури даних. Із загальних слів на тему
"навіщо" можна сказати, що типу такі завдання виникають при
складанні звітів, що це дуже важливо, не завжди зрозуміло, та інше. Всі
питання на тему "навіщо" надалі будемо опускати і займемося
питанням "як". А саме, як зробити так, щоб працювало, працювало
добре і щоб було зрозуміло, які можливості надає техніка
групування. p>
Операція
угруповання в базах SQL-типу оголошується опцією GROUP BY і часто
супроводжується опцією ORDER BY. Ті, хто мав справу з мовою SQL, напевно
приблизно уявляють, що це таке і до чого призводить. Ті ж, хто не
використовує мову SQL, мають з одного боку відсутність простого декларативного
оголошення своїх намірів, і, з іншого боку, набагато більшу гнучкість і
могутність, не обмежені нічим і ніякими реалізаціями та їх магічними
обмеженнями. Будемо слідувати другому варіанту - ручне програмування
операції угруповання, і розглянемо види групування та їх особливості, плюси і
мінуси. p>
Віддамо
належне методології і опишемо, в чому полягає операція групування.
Угрупування в загальних словах - це операція вибірки даних в такому вигляді, в
якому значення колонок розглядаються як критерій об'єднання строк
- Рядки з однаковими значеннями в групуються колонках об'єднуються в одну
рядок. p>
Покладемо,
що у нас є набір вихідних даних, на якому ми можемо провести
демонстрацію. Як приклад і в зв'язку з наближенням новим роком виберемо
умовну задачу "облік новорічних ялинкових іграшок". Покладемо, що в
нашому розпорядженні є кілька партій новорічних іграшок, які ми
розрізняємо по фігурі, за кольором і в кожній партії є певна кількість
однакових іграшок. p>
Створимо
тестові дані скриптом виду: p>
create (n) p>
s: '$ d (n)
n = 100 p>
s: (n