Как вино за 5 евро и за 5000 евро объединил один GROUP BY
Сомелье различает ноты вишни, кожи, минералов и винтаж 2016 года. А я вижу оператор GROUP BY
Один из комментариев к прошлой публикации врезался мне в память:
«Будь наш мир настолько структурирован, разве существовало бы на свете двадцать тысяч сортов сухого красного?»
В ответ я лишь отшутился: «Энергетическая ценность бутылки за пять евро и за пять тысяч практически одинакова» — а затем решил проверить это на практике. Комментатор рассуждал о богатстве вкусовых полутонов, я же смотрел на цифры калорийности. По сути, каждый остался при своей правде, однако дегустировать вино вместе нам точно противопоказано.
Чтобы расставить точки над i, я изучил десять официальных нутриентных баз данных: американскую, австралийскую, японскую, норвежскую, финскую, французскую, британскую, нидерландскую, чешскую и российскую. В итоге весь алкогольный ассортимент действительно безупречно лег всего на две координатные оси. Но параллельно вскрылся неутешительный факт: содержимое бутылки — зачастую не самая энергоемкая часть застолья.
Двадцать тысяч марок против двадцати пяти записей
Девять национальных реестров из десяти описывают винную категорию предельно лаконично: «красное», «белое», «розовое», укладывая все многообразие в 4–15 строк. И только американцы потрудились сегментировать столовые вина по конкретным сортам: каберне, мерло, пино нуар, сира, шардоне, рислинг — всего двадцать пять позиций.
Вот полная картина:

Все 25 разновидностей вписываются в скромный интервал в 14 ккал — от 74 до 88 ккал на 100 мл. В пересчете на стандартный бокал разница составляет всего 21 ккал: меньше неполной чайной ложки оливкового масла.
В подавляющем большинстве позиций содержание сахара равно нулю: сухое вино называется таковым именно потому, что дрожжи практически целиком ферментировали исходные сахара.
Французский подход заслуживает отдельного внимания. Местные исследователи подошли к классификации иначе и сгруппировали продукцию по содержанию спирта: «красное вино 10°», «красное вино 11°», «красное вино 12°».
Всего две координаты
Рассчитать энергетическую ценность напитка элементарно: в нем практически отсутствуют сложные макронутриенты. Бокал не содержит ни белков, ни жиров, ни пищевых волокон. Вся формула сводится к двум компонентам: этанолу (7 ккал на грамм) и углеводам (сахару).
Соответственно, структуру любого напитка можно разложить на эти две составляющие.

Крепкий алкоголь — чистый спирт. В водке, виски, роме, джине, текиле или коньяке сахара практически нет, и все ~231 ккал на 100 мл формируются исключительно крепостью.
Ликеры наполовину состоят из сахара. При общей плотности в 299 ккал на 100 мл этанол дает меньше половины энергии. По факту это крепленый десертный сироп.
В столовом вине около 89% калоража обеспечивает спирт. Именно поэтому все сорта визуально сливаются в одну группу: их крепость стандартизирована, а иные питательные вещества отсутствуют.
Безалкогольное пиво (0%) — это чистые углеводы. Спирта в нем нет, однако калорийность сохраняется целиком за счет сахаров.
Для построения надежной модели учета мне требовались объективные метрики, напрямую влияющие на результат. Собрав весь массив алкогольной продукции из десяти баз, я отобразил его на двухмерной плоскости: крепость против содержания сахара.

Двести семьдесят два напитка со всего мира распределились не хаотично, а сформировали четкие кластеры: пиво и сидр сгруппировались в левом нижнем секторе, вино выстроилось в ровную полосу в центре, крепкий алкоголь сместился вправо вдоль нулевой линии сахара, а ликеры заняли верхнюю плоскость.
Чтобы надежно оценить калорийность напитка, нужны всего два параметра: содержание спирта и уровень сахара. Сорт винограда, терруар, винтаж и стоимость бутылки на энергоемкость практически не влияют.
В таком разрезе французская классификация выглядит куда практичнее. Американская детализация отвечает на эстетический вопрос: «Какой именно это сорт?» — давая погрешность в пределах чайной ложки масла. Французская же четко формулирует: «Каков энергетический потенциал?» — превращая 10°, 11° и 12° в точные градации калорийности. Для сомелье полезнее первый подход, для точного калькулятора — второй.
Фактический размер порций
С вином ситуация прояснилась. Однако для корректных выводов пора отказаться от абстрактных 100 миллилитров: в реальной жизни такими объемами не оперируют. Пиво заказывают пинтами, вино наливают бокалами, а виски пьют порционными шотами.

Расстановка сил мгновенно переворачивается: шот виски — это 102 ккал, бокал сухого красного — 112 ккал, а стандартная кружка лагера (0,5 л) — уже 180 ккал. В пересчете на сто граммов картина выглядела обманчиво: крепкий напиток казался втрое «тяжелее» вина и в шесть раз калорийнее пива.
Маркетинговые манипуляции с базовыми параметрами
Когда реальных переменных всего две, маркетинговые уловки с несуществующими параметрами становятся очевидными.
Соджу без сахара. Две позиции одного бренда одинаковой крепости 16%: стандартная — 320 ккал, версия без сахара — абсолютно те же 320 ккал. Формулу скорректировали, но цифра не шелохнулась. В пяти проверенных марках категории «Zero» калорийность оказалась ниже в среднем лишь на 7%, и то исключительно из-за снижения градуса.
«Безглютеновая» водка. В процессе дистилляции белковые фракции физически не попадают в готовый продукт, поэтому чистая классическая водка априори не содержит глютена. Однако маркировка преподносится потребителю как эксклюзивное преимущество.
Ресвератрол. Знаменитый антиоксидант, благодаря которому красному вину годами приписывали целебные свойства. В действительности дозировка из бокала примерно в пять тысяч раз ниже терапевтических концентраций из исследований. Получить нужный объем из напитка физически невозможно: счет шел бы на сотни бутылок в сутки.
Производителям долгое время сходили с рук любые уловки, поскольку обязательная маркировка калорийности на алкоголе отсутствовала. В Евросоюзе лед тронулся лишь в конце 2023 года, и пока только для вина. Пиво и крепкие напитки до сих пор маркируются без жестких требований к энергетической ценности. Поэтому от рекламных лозунгов стоит полностью абстрагироваться.

Реальность барного вечера
До сих пор мы анализировали исключительно содержимое бокала — занятие удобное, но оторванное от реальной жизни.

В моем приложении под подобные сценарии выделен раздел «Редкое». Туда можно вынести персональные быстрые шаблоны, и у меня эта панель практически полностью оптимизирована под пятничный отдых.

Верхние ряды отведены под выпивку и снеки. Ниже расположились бургеры, шаурма, холодец и выпечка — блюда, которые редко планируют на полдень вторника, но с легкостью заказывают ближе к полуночи.
Давайте оценим реальную стоимость такого отдыха. Я сопоставил два массива данных — напитки и сопутствующие закуски в их фактических объемах подачи — и смоделировал несколько классических вариантов вечера.

Обратите внимание на локализацию данных. Напитки компактно сгруппированы в диапазоне от 55 до 640 ккал (разброс максимум в 12 раз). А вот закуски размазаны по всей шкале — от одного корнишона до порции жареного сыра в сухарях, от 4 до 2622 ккал. Разница достигает семисот раз.
Ниже приведен детальный разбор пяти типичных сценариев:

|
Сценарий вечера |
Итого |
Доля алкоголя |
Основные источники калорий |
|---|---|---|---|
|
Пара шотов виски без еды |
203 |
100% |
закуски отсутствовали |
|
Бокал вина, хамон и оливки |
449 |
50% |
хамон 130, тост 73 |
|
Вино с сырным сетом |
557 |
40% |
гауда 164, крекеры 89 |
|
Два шота водки, сельдь с картофелем |
632 |
32% |
ложка масла 125 — калорийнее всей картошки |
|
Пятничный сбор с друзьями |
1124 |
60% |
четыре пинты 679, крылышки 288 |
Парадоксально, но вечер с крепким алкоголем вышел наименее калорийным — исключительно потому, что обошелся без закусок. Разница между сетом с хамоном и сырной тарелкой под идентичный напиток составляет сотню килокалорий. А в закуске с селедкой главным источником энергии оказалась не рыба и даже не гарнир, а единственная столовая ложка растительного масла.
Суть не в призыве немедленно отказаться от сыра. Вывод в другом: пока мы скрупулезно просим содовую вместо тоника, калории незаметно добираются из тарелки с закусками.
Сколько пресетов нужно для точного учета
Вернемся к двухмерной модели. Если весь ассортимент алкоголя описывается двумя параметрами, его можно полностью закрыть сеткой шаблонов. Вопрос лишь в оптимальном шаге этой сетки.

Оптимальное число — тридцать четыре: 25 кнопок в шаблоне «Алкоголь» и еще 9 в категории «Коктейли». Если сопоставлять любой напиток с ближайшим пресетом по сахару и градусу с пересчетом на реальную порцию подачи, средняя абсолютная погрешность составит всего 36 ккал. Медианное отклонение — 15 ккал; у девяти из десяти позиций ошибка не превышает 93 ккал. Ниже представлена базовая раскладка из 25 кнопок (график учитывает оба набора).


Интерфейс предельно лаконичен: пиво, вино, сидр, крепкое, крепленое — и ступенчатый выбор объема внизу. Без объема цифры бессмысленны: шот и пивная кружка одного напитка создают абсолютно разный суммарный калораж.
Слепые зоны сохраняются лишь на экстремумах: безалкогольные сладкие миксы и концентрированные крепко-сладкие напитки (биттеры, десертные ликеры, сложные коктейли), где барное «налить на глаз» становится главной переменной.
Приводит ли алкоголь к набору веса?
Ответ складывается из двух объективных факторов.
1. Чистая арифметика калорий.
Ежедневный бокал сухого вина добавляет порядка 780 ккал в неделю — это почти 41 000 ккал за год. В пересчете на жировую массу (из расчета ~7700 ккал на 1 кг) это дает около пяти килограммов в год при сохранении остального рациона. Пятничные посиделки в компании раз в неделю легко добавят до восьми.

2. Поведенческий фактор. Систематический обзор 22 научных исследований показал закономерность: прием спиртного напрямую провоцирует увеличение объема съедаемой пищи (в среднем на 80+ ккал за один прием). При этом ни в одном из исследований участники не компенсировали калорийность выпитого, сократив последующие порции.
Иными словами, истинная энергетическая цена вечера выходит далеко за пределы этикетки на бутылке. Алкоголь снимает пищевой самоконтроль и тянет за собой блюда, которые вы вряд ли заказали бы под минеральную воду. И диапазон здесь варьируется от скромного соленого огурца до внушительного сета во фритюре на пару тысяч килокалорий.
В сухом остатке
С алкогольной картой задачу удалось решить изящно: благодаря двум ключевым параметрам весь мировой ассортимент удалось упаковать в тридцать четыре готовых пресета. С этой логикой без труда справится и алгоритм приложения, и человек после пары бокалов.
А вот с шаурмой (или шавермой — в зависимости от региона) такой трюк не прошел. Комбинации мяса, соусов, лаваша, курдюка, овощей и размеров порций дали 353 280 уникальных вариантов: от 71 до 1924 ккал (в стандартном сборе — от 225 до 1596 ккал). Если алкоголь описывается всего двумя цифрами, то шаурма — это единое слово с 353 тысячами интерпретаций. Но об этом — в следующей статье.
Глубокое стоимостное инвестирование: 90 лет доказанной эффективности
ARC-AGI-2: обучающая и тестовая выборки принадлежат разным распределениям
Каждый седьмой житель планеты страдает расстройством психики, но большинство остается без лечения
Конец правила 10 000 часов: почему упорный труд в эпоху ИИ больше не гарантирует успех
Эволюция вычисления числа π: от Гиппаса до современности
Новые мыслители эпохи ИИ: как Фристон и Ванчурин потеснили академическую философию
Операционная система, призванная уничтожить Windows
Чему я научился у детей, обучая их робототехнике