Корпус для колонки
Корпус для колонок своими руками: делаем хороший корпус самостоятельно
Современный рынок предлагает потребителям большое количество вариантов колонок и акустических систем. Но не всегда самый удобный вариант обзавестись аудио устройством – купить его. Случаются ситуации, когда предпочтительнее собрать корпус для колонок самостоятельно, тем более, что это не сложно.
Содержание статьи
- Из чего можно сделать корпус для колонок своими руками?
- Инструкция: как сделать корпус?
- Как поместить содержимое вовнутрь?
Из чего можно сделать корпус для колонок своими руками?
В качестве материала для создания корпуса колонок может подойти довольно обширный ряд материалов. Самым популярным из них является ДВП. Реже используется обычное дерево, ДСП, фанера, МДФ, плотный картон. Для этого подойдёт также пластмасса и металл, если у Вас есть возможность их обрабатывать. Описание каждого из материалов:
- МДФ – деревянный материал, который чаще всего используется среди заводских конструкций колонок. Он отличается тем, что меньше всех резонирует, прочен и прост в обработке. Правда, качество МДФ бывает разным.
- Пластик – если отбросить проблему обработки и плавления, то это достойный кандидат на корпус для колонок. Лёгкий, в меру гибкий (зависит от качества) и достаточно прочный для обеспечения длительного срока службы материал.
- ДСП – в целом неплохой материал, если забыть о некоторых недостатках, а именно: недолговечности и хрупкости. Здесь имеется в виду не общая слабость конструкции, а непереносимость влаги и некоторых видов краски. Подойдёт не всем. Прост в обработке и достаточно дешёвый вариант. Против раздражителей защититься поможет лак.
- ЛДСП – ламинированная ДСП. Улучшенный вариант, который не нужно покрывать лаком. Выглядит данный материал в оригинале не очень, но его можно покрасить, а цена намного ниже обычного ДСП.
- Фанера – делится на несколько подкатегорий в соответствии с деревом, из которого была сделана. Если создатель корпуса колонки готов мириться со сложностями обработки и немалой ценой, то фанера ему отлично подойдёт. Дело заключается в том, что, высыхая с течением времени, любое издение из дерева изгибается «винтом», и у фанеры данное искажение проявляется достаточно сильно. Если уж делать из фанер, то не нужно потом чем-то покрывать изделие: её достоинства будут сведены на нет.
- Древесный массив – требует больших затрат, а в итоге награждает пользователя минимальным выхлопом на выходе. Этот вариант подходит только ради осознания того, что в корпус колонки вложены большие деньги. Единственное преимущество – натуральный внешний вид.
- Плотный картон – дешёвый и недолговечный вариант. С другой стороны, с таким корпусом справится даже ребёнок.
- Металл – тяжёлый и дорогой выбор материала. Кроме того, его нужно уметь правильно обрабатывать. Если сделать это получится, то в итоге у пользователя будет колонка с металлическим корпусом, что придаёт стиля.
Инструкция: как сделать корпус?
После выбора материала нужно определиться с размерами корпуса. При наличии под рукой «внутренностей» для колонки (провода, динамик, и прочее) не помешает подобрать такой размер, чтобы всё помещалось, но при этом не располагалось слишком свободно. Избыток пустого места внутри корпуса колонки может стать причиной поломок.
Классически электроника колонок заключается в прямоугольный параллелепипед оптимального размера, но не обязательно делать такую форму окончательной: после черновой сбивки у создателя останется возможность добавить декоративных деталей, которые изменят форму и внешний вид колонки.
После замеров следует непосредственный распил первичного материала с целью получить необходимые детали. Грубо говоря, потребуется шесть пластин, три пары разного размера, или все одинаковые – это уже решать создателю. Не стоит забывать о том, что нахлёст между соседними листами должен быть равен толщине материала.
После изготовления всех необходимых деталей останется только соединить их. Вид соединения полностью зависит от предпочтений владельца – это может быть клей, гвозди, саморезы, строительные скобы, и всё, что угодно. Нужно лишь оставить одну плоскость для помещения внутрь электроники.
СПРАВКА! Колонкам для предотвращения сообщения между непосредственно звуковым устройством и полкой, столом или полом, на котором она стоит, потребуются подставки.
Подставки легко сделать из мелких гирек, предназначенных для строительных весов. Эти небольшие, а главное, недорогие предметы, отлично впишутся в интерьер и справятся со своей задачей.
Как поместить содержимое вовнутрь?
Сперва нужно выбрать сторону, которая будет «лицевой», и в ней рассверлить отверстие для динамика, после чего вставить его в это отверстие и прикрутить (приклеить, прибить, по желанию). Оставшиеся внутренности желательно поместить так, чтоб ни один из проводов не перегибался или прижимался, а также мелкие детали не издавали люфта. Если размер был выбран правильно, то всё поместится. Завершающим шагом будет прикрепление последней пластин, которая закроет коробку.
Изготовление корпусов колонок: Обзор материалов / Хабр
Изготовление корпусов колонок: Обзор материалов
Профессиональная активная акустика Denon DN-304S
Раньше колонки представляли собой обыкновенные рупорные громкоговорители и не имели корпуса как такового. Все изменилось, когда в 20-х годах XX века появились динамики с бумажными диффузорами.
Производители начали изготавливать крупные корпуса, которые вмещали в себя всю электронику. Однако вплоть до 50-х годов многие производители аудиоаппаратуры не закрывали корпуса колонок полностью – задняя часть оставалось открытой. Это было связано с необходимостью охлаждения электронных компонентов того времени (ламповое оборудование).
Задача корпуса колонок – контроль акустической среды и удержание динамиков и других компонентов системы. Уже тогда было замечено, что корпус способен оказывать серьезное влияние на звучание громкоговорителя. Поскольку передняя и задняя части динамика излучают звук с разными фазами, то возникала усиливающая или ослабляющая интерференция, что приводило к ухудшению звука и появлению эффекта гребенчатой фильтрации.
В связи с этим начались поиски способов улучшения качества звучания. Для этого многие стали исследовать естественные акустические свойства различных материалов, пригодных для изготовления корпусов.
Волны, отраженные от внутренней поверхности стенок корпуса колонок, накладываются на основной сигнал и создают искажения, интенсивность которых зависит от плотности используемых материалов. В связи с этим часто оказывается, что корпус стоит гораздо дороже компонентов, заключенных в нем.
При производстве корпусов на крупных фабриках, все решения касательно выбора формы и толщины материалов принимаются на основании расчетов и тестов, однако Юрий Фомин, звукоинженер и инженер-конструктор акустических систем, чьи разработки лежат в основе мультимедийных систем под брендами Defender, Jetbalance и Arslab, не исключает, что даже в отсутствие специальных музыкальных знаний и большого опыта работы в аудиоиндустрии можно сделать что-то, близкое по характеристикам к «серьезному» Hi-Fi.
«Надо брать готовые разработки, которыми инженеры делятся в сети, и повторять их. Это 90% успеха», – отмечает Юрий Фомин.
При создании корпуса акустической системы следует помнить, что, в идеале, звук должен поступать только из динамиков и специальных технологических отверстий в корпусе (фазоинвертор, трансмиссионная линия) – нужно позаботиться, чтобы он не проникал через стенки колонок. Для этого рекомендуется выполнять их из плотных материалов с высоким уровнем внутреннего звукопоглощения. Вот несколько примеров того, из чего можно собрать корпус для динамиков.
Древесно-стружечная плита (ДСП)
Это доски, сделанные из спрессованной древесной стружки и клея. Материал обладает гладкой поверхностью и неплотной рыхлой сердцевиной. ДСП хорошо гасит вибрации, однако пропускает через себя звук. Плиты легко скрепляются клеем для дерева или монтажным клеем, однако их края имеют тенденцию крошиться, что немного усложняет работу с материалом. Также он боится влаги – при нарушении производственных процессов легко её впитывает и разбухает.
В магазинах продают доски разной толщины: 10, 12, 16, 19, 22 мм и так далее. Для небольших корпусов (объемом меньше 10 литров) подойдет ДСП толщиной 16 мм, а для корпусов большего размера следует выбрать доски толщиной 19 мм. ДСП можно облицовывать: обклеивать пленкой или тканью, шпаклевать и красить.
Древесно-стружечная плита используется при создании акустической системы Denon DN-304S (на фото выше). Производитель выбрал ДСП потому, что этот материал является акустически инертным: колонки не резонируют и не окрашивают звук даже при высокой громкости.
Облицованная ДСП
Это ДСП, облицованная декоративными пластиками или шпоном с одной или с двух сторон. Плиты с деревянной облицовкой скрепляются обычным клеем для дерева, однако для ДСП, облицованной пластиком, придется покупать специальный клей. Для обработки срезов доски можно воспользоваться кромочной лентой.
Столярная плита
Популярный строительный материал из реек, брусков или других наполнителей, которые оклеены с двух сторон шпоном или фанерой. Плюсы столярной плиты: относительно малый вес и простота обработки краев.
Ориентированно-стружечная плита (ОСП)
ОСП – это доски, спрессованные из нескольких слоев тонкой фанеры и клея, узор на поверхности которых напоминает мозаику желтого и коричневого цветов. Сама поверхность материала неровная, но ее можно отшлифовать и покрыть лаком, поскольку текстура дерева придает этому материалу необычный вид. Такая плита обладает высоким коэффициентом звукопоглощения и устойчива к вибрациям.
Также стоит отметить, что благодаря своим свойствам ОСП используется для формирования акустических экранов. Экраны необходимы для создания комнат прослушивания, где пользователи могут оценить звучание акустических систем в практически идеальных условиях. Полосы из ОСП крепятся на определенном расстоянии друг от друга, образуя тем самым панель Шредера. Суть решения заключается в том, что закрепленная в определенных точках полоса под воздействием акустической волны расчетной длины начинает излучать в противофазе и гасит ее.
Древесноволокнистая плита средней плотности (МДФ)
Сделанный из древесной стружки и клея, этот материал более гладкий, чем ОСП. Благодаря своей структуре МДФ хорошо подходит для изготовления дизайнерских корпусов, поскольку легко поддается распилу, – это упрощает стыковку деталей, скрепляемых между собой при помощи монтажного клея.
МДФ можно облицовывать, шпаклевать и красить. Толщина плит варьируется от 10 до 22 мм: для корпусов колонок объемом до 3 литров будет достаточно доски толщиной 10 мм, до 10 литров – 16 мм. Для больших корпусов лучше выбрать 19 мм.
Если при выборе материала для изготовления корпусов акустических систем отбросить в сторону звуковые аспекты, то останутся три определяющих параметра: низкая стоимость, простота обработки, простота склеивания. МДФ как раз обладает всеми тремя. Именно невысокая стоимость и «податливость» МДФ делают его одним из самых популярных материалов для изготовления колонок.
Пример использования МДФ – полочная акустика Arslab Classic 1 SE, стенки корпуса которой изготовлены из толстых древесноволокнистых плит, препятствующих возникновению вибраций и окрашиванию звука.
Фанера
Этот материал сделан из спрессованного и склеенного тонкого шпона (около 1 мм). Для повышения прочности фанеры слои шпона накладываются так, чтобы волокна древесины были направлены перпендикулярно волокнам предыдущего листа. Фанера – лучший материал для подавления вибраций и удержания звука внутри корпуса. Склеить фанерные доски между собой можно обычным клеем по дереву.
Шлифовать фанеру сложнее, чем МДФ, поэтому выпиливать детали нужно как можно точнее. Среди достоинств фанеры стоит выделить её легкость. По этой причине из неё часто делают кейсы для музыкальных инструментов, ведь достаточно обидно отменять концерт из-за того, что музыкант надорвал спину.
Именно этот материал применяется компанией Penaudio для производства напольной акустики – она использует латвийскую фанеру, которая изготавливается из березы. Многим нравится то, как выглядит обработанная березовая фанера, особенно после покрытия лаком, – это придает корпусу уникальности. Этим и пользуется компания: поперечные слои фанеры стали своеобразной «визитной карточкой» Penaudio.
Напольная акустика Penaudio Rebel Three
Камень
Чаще всего используются мрамор, гранит и сланец. Сланец – самый подходящий материал для изготовления корпусов: с ним достаточно просто работать из-за его структуры, и он эффективно поглощает вибрации. Главный недостаток – необходимы специальные инструменты и навыки обработки камня. Чтобы как-то упростить работу, возможно, имеет смысл изготовить из камня только переднюю панель.
Стоит отметить, что для установки колонок из камня на полку, вам может понадобиться мини-кран, да и сами полки должны быть достаточно прочными: вес каменной аудиоколонки достигает 54 кг (для сравнения, колонка из ОСП весит около 6 килограмм). Такие корпусы серьезно улучшают качество звука, но их стоимость может оказаться «неподъемной».
Колонки из цельного куска камня делают ребята из компании Audiomasons. Корпусы вырезаются из известняка и весят порядка 18 килограмм. По заявлениям разработчиков, звучание их продукта придется по вкусу даже самым искушенным меломанам.
Оргстекло/стекло
Можно сделать корпус для динамиков из прозрачного материала – это действительно круто, когда видно «внутренности» колонки. Только здесь важно помнить, что без должной изоляции звук будет ужасным. С другой стороны, если вы добавите слой звукопоглощающего материала, прозрачный корпус перестанет быть прозрачным.
Неплохим примером акустической hi-end-аппаратуры из стекла может служить Crystal Cable Arabesque. Корпуса техники Crystal Cable изготавливаются в Германии из полос стекла толщиной 19 мм со шлифованными гранями. Детали скрепляются между собой невидимым клеем в вакуумной установке, дабы избежать появления пузырьков воздуха.
На выставке CES-2010, проходившей в Лас-Вегасе, обновлённые Arabesque завоевали все три награды в области Инноваций. «До сих пор ни одному производителю техники не удавалось добиться настоящего hi-end-звучания от акустики, изготовленной из такого сложного материала. – писали критики. – Компания Crystal Cable доказала, что это возможно».
Клееная древесина/дерево
Из дерева получаются хорошие корпуса, однако здесь нужно учитывать важный момент: дерево имеет свойство «дышать», то есть оно расширяется, если воздух влажный, и сжимается, если воздух сухой.
Так как деревянный брусок проклеивается со всех сторон, в нем создается напряжение, что может привести к растрескиванию древесины. В этом случае корпус потеряет свои акустические свойства.
Металл
Чаще всего для этих целей используется алюминий, точнее – его сплавы. Они легкие и жесткие. По мнению ряда специалистов, алюминий позволяет уменьшить резонанс и улучшить передачу высоких частот звукового спектра. Все эти качества способствуют росту интереса к алюминию со стороны фирм-производителей аудиоаппаратуры, и его используют для изготовления всепогодных акустических систем.
Существует мнение, что изготовление цельнометаллического корпуса – не самая хорошая идея. Однако стоит попробовать сделать из алюминия верхние и нижние панели, а также перегородки жесткости.
Наши
Фанера шпонированная
Поскольку повлиять на качество дорожного покрытия не реально, на конструкцию авто достаточно тяжело и дорого, то остается одно – повышать комфорт за счет мелочей. Одной из которых можно назвать музыкальное сопровождение поездки. Таким образом, посвятим эту статью обустройства такой нужной детали, как подиум авто.
подиум для автомобильной акустики | снятие замера с двери автомобиля | угол наклона |
Подиум – это деталь, которая предназначена для установки колонок в авто. В принципе для их установки предусмотрены специальные посадочные отверстия. Нужно только найти колонки соответствующего диаметра.
Обычно же автолюбители идут от обратного. Выбирают акустическую систему и под нее устанавливают подиумы. Поиск подходящих подиумов – процесс длительный и хлопотный, поэтому чаще всего такие подиумы изготавливаются самостоятельно.
Пошаговый процесс устройства акустического подиума из фанеры
1 шаг — Инструмент и материалы
Для работы вам понадобятся:
- фанера. Толщина зависит от высоты предполагаемого подиума. Чтобы снизить стоимость можно сделать подиум наборным. Для этого можно взять фанеру толщиной от 5 мм, а потом просто склеивать или сбивать ее до нужного размера. Все равно целый лист покупаете. Сорт фанеры не столь важен, а вот шероховатость должна быть минимальной. Ее вроде и не видно, но не жадничайте, купите Ш 1. Ваши колонки скажут спасибо. А отсутствие дребезжания из-за разной шероховатости поверхности будет хорошей наградой за потраченные средства.
- картонка или плотная бумага. Для изготовления «выкройки» изделия.
- крепежи. Болты, длиной 30-40 мм нужны для установки подиума в дверцу. Гвозди нужны для крепления листов фанеры между собой. Их длина зависит от требуемой толщины подиума.
- пена и шумоизолирующий материал. Можно использовать любые. Их назначение обеспечить прочность установки.
- наждачная бумага. Для придания местам среза идеальной гладкости.
- пластилин. Понадобится в том случае, если в силу конструктивных особенностей двери, возникнет необходимость изготовить наклонный подиум.
- электролобзик. К сожалению пилой по дереву такую работу не выполнишь.
- дрель. Для просверливания отверстий в местах крепления.
- острый нож.
Итак, подготовив эти нехитрые приспособления приступим непосредственно к изготовлению.
2 шаг – Замеры
Раз уж делаем подиум сами, следует сделать его так, чтобы потом не маяться с подгонкой. Для этого замеряем место установки. Здесь будет крепиться подиум. На фото видно, что заводским способом просверлено три отверстия, которые будут служить местом крепления. Это избавит нас от сверления двери.
проверяем на соответствие размерам колонки | заливаем конструкцию пеной | деталь грунтуется |
закрепляем колонки | готовый подиум |
Важно определить размер подиума с самого начала. Следует учесть, что внутренний диаметр должен точно соответствовать корзине подвеса ваших колонок. А внешний – должен выступать за габариты штатного кольца как можно меньше. Фанеру лучше использовать марки — влагостойкая ФК.
Чтобы вырезать макет основания и проверить его размеры, можно использовать картон.
Дальше несколько заготовок фиксируются гвоздями до достижения нужной толщины. Можно использовать клей – но это увеличит время изготовления, до полного склеивания поверхностей.
Если подиум ровный – далее его нужно только покрасить.
Мы же рассмотрим ситуацию, когда подиум имеет угол наклона. Для этого на месте, т.е. в машине подбирается угол. А детали крепятся между собой обычным пластилином. В данном случае следует предусмотреть, чтобы угол детали остался неизменный. Далее пластилин меняется на фанерные проставки, которые фиксируются эпоксидным клеем. Проверяем на соответствие размерам колонки. Для устранения пустот, увеличения прочности и надежности крепления заливаем конструкцию пеной. После застывания пена обрезается, а деталь грунтуется, чтобы защитить подиум от воздействия влаги. Затем окрашивается или обтягивается винилом.
Подиум готов, осталось только установить его на место и закрепить колонки.
На месте установки подиум тоже можно дополнительно покрыть шумоизолирующим материалом. Подиум готов! Наслаждайтесь хорошим звуком и комфортных вам поездок!
← Способы устройства деревянного пола из фанеры Изготовление фанеры, производство фанеры →
Рекомендуем посмотреть:
OSB | 18мм | 1220 мм х 2440 мм
1 200 руб
Фанера ФСФ | 15мм | 1220 мм х 2440 мм | березовая | сорт 3/4 | Ш2
3 200 руб
Фанера ФК | 10мм | 1520 мм х 1520 мм | березовая | сорт 3/4 | Ш2
1 350 руб
Фанера ФСФ | 9мм | 1500 мм х 3000 мм | березовая | сорт 2/3 | Ш2
4 862 руб
Фанера ФСФ | 15мм | 1500 мм х 3000 мм | березовая | сорт 3/4 | Ш1
5 900 руб
Фанера ФСФ | 18мм | 1500 мм х 3000 мм | березовая | сорт 2/3 | Ш2
8 150 руб
Фанера ЛАМИНИРОВАННАЯ ФОФ | 21мм | 1220 мм х 2440 мм | береза
5 300 руб
Фанера ФСФ | 12мм | 1220 мм х 2440 мм | березовая | сорт 3/4 | Ш2
2 850 руб
Фанера ФК | 15мм | 1520 мм х 1520 мм | березовая | строительная | НШ
1 200 руб
Фанера ФСФ | 6.
5мм | 1500 мм х 3000 мм | березовая | сорт 3/4 | Ш13 815 руб
Фанера ФСФ | 12мм | 1220 мм х 2440 мм | березовая | сорт 4/4 | НШ
2 200 руб
Фанера ФСФ | 4мм | 1220 мм х 2440 мм | березовая | сорт 2/3 | Ш2
2 000 руб
Фанера ФСФ | 18мм | 1500 мм х 3000 мм | березовая | строительная | НШ
5 530 руб
Фанера ХВОЯ | 6.5мм | 1220 мм х 2440 мм | хвойная | сорт 3/4 | НШ(ЦЕНА ПО ЗАПРОСУ)
1 200 руб
Фанера ХВОЯ | 9мм | 1220 мм х 2440 мм | хвойная | сорт 2/3 | НШ(ЦЕНА ПО ЗАПРОСУ)
1 800 руб
Фанера ФК | 6мм | 1520 мм х 1520 мм | березовая | сорт 2/3 | Ш2
1 000 руб
Фанера ФК | 21мм | 1520 мм х 1520 мм | березовая | сорт 4/4 | НШ
1 800 руб
Фанера ФСФ | 9мм | 1220 мм х 2440 мм | березовая | строительная | НШ
1 700 руб
Фанера ФСФ | 4мм | 1220 мм х 2440 мм | березовая | сорт 4/4 | НШ
1 300 руб
Фанера ФК | 10мм | 1520 мм х 1520 мм | березовая | строительная | НШ
1 000 руб
Комментарии
Еще пока никто не оставлял комментарий
СЛУЧАЙ SQL | Промежуточный SQL
Начиная здесь? Этот урок является частью полного учебника по использованию SQL для анализа данных. Проверьте начало.
В этом уроке мы рассмотрим:
- Оператор SQL CASE
- Добавление нескольких условий в оператор CASE
- Краткий обзор основ CASE
- Использование CASE с агрегатными функциями
- Использование CASE внутри агрегатных функций
- Практические задачи
В течение следующих нескольких уроков вы будете работать с данными о футболистах колледжей. Эти данные были собраны с ESPN 15 января 2014 г. из списков, перечисленных на этой странице, с помощью парсера Python, доступного здесь. В этом конкретном уроке вы будете придерживаться информации о ростере. Эта таблица говорит сама за себя — одна строка на игрока со столбцами, описывающими атрибуты этого игрока. Запустите этот запрос, чтобы проверить необработанные данные:
SELECT * FROM benn.college_football_players
Оператор CASE
— это способ SQL для обработки логики if/then. За оператором CASE
следует как минимум одна пара операторов WHEN
и THEN
— эквивалент SQL оператора IF/THEN в Excel. Из-за этой пары у вас может возникнуть соблазн назвать это SQL CASE WHEN
, но CASE
является принятым термином.
Каждый оператор CASE
должен заканчиваться оператором END
. Оператор ELSE
является необязательным и предоставляет способ захвата значений, не указанных в КОГДА
/ ТОГДА
утверждений. CASE
проще всего понять в контексте примера:
SELECT player_name, год, СЛУЧАЙ, КОГДА год = 'SR' THEN 'да' ELSE NULL END AS is_a_senior ОТ benn.college_football_players
Проще говоря, вот что происходит:
- Оператор
CASE
проверяет каждую строку, чтобы убедиться, что условное выражение —year = 'SR'
истинно. - Для любой заданной строки, если это условное утверждение истинно, слово «да» печатается в столбце, который мы назвали
is_a_senior
. - В любой строке, для которой условное выражение ложно, ничего не происходит в этой строке, оставляя нулевое значение в столбце
is_a_senior
. - В то же время, когда все это происходит, SQL извлекает и отображает все значения в столбцах
player_name
иyear
.
Приведенный выше запрос довольно легко увидеть, что происходит, потому что мы включили оператор CASE
вместе с год
сама колонка. Вы можете проверить каждую строку, чтобы увидеть, соответствует ли год
условию год = «SR»
, а затем просмотреть результат в столбце, сгенерированном с помощью инструкции CASE
.
Но что, если вам не нужны нулевые значения в столбце is_a_senior
? Следующий запрос заменяет эти нули на «нет»:
SELECT player_name, год, СЛУЧАЙ, КОГДА год = 'SR' THEN 'да' ELSE 'no' END AS is_a_senior ОТ benn.college_football_players
Практическая задача
Напишите запрос, включающий столбец с пометкой «да», если игрок из Калифорнии, и сначала отсортируйте результаты с этими игроками.
Попробуйте См. ответ
Вы также можете определить количество результатов в операторе CASE
, включив любое количество операторов WHEN
/ THEN
:
SELECT player_name, масса, СЛУЧАЙ, КОГДА вес > 250, ТОГДА «более 250» КОГДА вес > 200, ТОГДА "201-250" КОГДА вес > 175, ТОГДА '176-200' ELSE '175 или меньше' END AS Weight_group ОТ benn.college_football_players
В приведенном выше примере операторы WHEN
/ THEN
будут оцениваться в том порядке, в котором они написаны. Таким образом, если значение в столбце weight
данной строки равно 300, это даст результат «более 250». Вот что произойдет, если значение в столбце weight
равно 180, SQL сделает следующее:
- Проверьте, больше ли
weight
250. 180 не больше 250, поэтому переходите к следующемуКОГДА
/ЗАТЕМ
- Проверьте, не превышает ли
вес
200. 180 не больше 200, поэтому переходите к следующемуКОГДА
/ТО
- Проверьте, не больше ли
weight
175. 180 больше 175, поэтому запишите «175-200» в столбцеweight_group
.
Несмотря на то, что все вышеперечисленное работает, на самом деле лучше всего создавать операторы, которые не перекрываются. ПРИ весе > 250
и КОГДА вес > 200
перекрываются для каждого значения больше 250, что немного сбивает с толку. Лучше написать это так:
SELECT player_name, масса, СЛУЧАЙ, КОГДА вес > 250, ТОГДА «более 250» КОГДА вес > 200 И вес <= 250, ТО '201-250' КОГДА вес > 175 И вес <= 200, ТОГДА '176-200' ELSE '175 или меньше' END AS Weight_group ОТ benn.college_football_players
Практическая задача
Напишите запрос, включающий имена игроков и столбец, который классифицирует их по четырем категориям в зависимости от роста. Имейте в виду, что ответ, который мы даем, является лишь одним из многих возможных ответов, поскольку вы можете разделить рост игроков по-разному.
ПопробуйтеСмотреть ответ
Вы также можете объединить несколько условных операторов с И
и ИЛИ
так же, как в предложении WHERE
:
SELECT player_name, СЛУЧАЙ, КОГДА год = 'FR' И позиция = 'WR', ТО 'frosh_wr' ELSE NULL END AS sample_case_statement ОТ benn.college_football_players
Краткий обзор основ CASE:
- Оператор
CASE
всегда находится в предложенииSELECT
. -
CASE
должен включать следующие компоненты:WHEN
,THEN
иEND
.ELSE
является дополнительным компонентом. - Вы можете сделать любой условный оператор, используя любой условный оператор (например,
WHERE
) междуWHEN
иTHEN
. Это включает в себя объединение нескольких условных операторов с использованиемИ
иИЛИ
. - Вы можете включить несколько операторов
WHEN
, а также операторELSE
для работы с любыми неадресованными условиями.
Практическая задача
Напишите запрос, который выбирает все столбцы из benn.college_football_players
и добавляет дополнительный столбец, отображающий имя игрока, если этот игрок является младшим или старшим.
ПопробуйтеСмотреть ответ
Использование CASE с агрегатными функциями
Несколько более сложная и существенно более полезная функциональность CASE
достигается за счет объединения его с агрегатными функциями. Например, предположим, что вы хотите подсчитывать только те строки, которые соответствуют определенному условию. Поскольку COUNT
игнорирует нули, вы можете использовать оператор CASE
для оценки условия и получения нулевых или ненулевых значений в зависимости от результата:
SELECT CASE WHEN year = 'FR' THEN 'FR' ELSE 'Not FR' END AS year_group, COUNT(1) КАК считать ОТ benn. college_football_players СГРУППИРОВАТЬ ПО РЕГИСТРУ, КОГДА год = 'FR', ТОГДА 'FR' ELSE 'Не FR' END
Теперь вы можете подумать: «Почему бы мне просто не использовать предложение WHERE
для фильтрации строк, которые я не хочу учитывать?» Вы можете сделать это — это будет выглядеть так:
SELECT COUNT(1) AS fr_count ОТ benn.college_football_players ГДЕ год = 'FR'
Но что, если вы также хотите посчитать пару других условий? Использование предложения WHERE
позволяет учитывать только одно условие. Вот пример подсчета нескольких условий в одном запросе:
SELECT CASE WHEN year = 'FR' THEN 'FR' КОГДА год = «ТАК», ТОГДА «ТАК» КОГДА год = 'JR', ТОГДА 'JR' КОГДА год = 'SR', ТОГДА 'SR' ELSE 'Нет данных за год' END AS year_group, COUNT(1) КАК считать ОТ benn.college_football_players СГРУППИРОВАТЬ ПО 1
Приведенный выше запрос — отличное место для использования чисел вместо столбцов в предложении GROUP BY
, потому что повторение оператора CASE
в предложении GROUP BY
сделало бы запрос неприемлемо длинным. Кроме того, вы можете использовать псевдоним столбца в GROUP BY
предложение, подобное этому:
SELECT CASE WHEN year = 'FR' THEN 'FR' КОГДА год = «ТАК», ТОГДА «ТАК» КОГДА год = 'JR', ТОГДА 'JR' КОГДА год = 'SR', ТОГДА 'SR' ELSE 'Нет данных за год' END AS year_group, COUNT(1) КАК считать ОТ benn.college_football_players ГРУППА ПО year_group
Обратите внимание: если вы решите повторить весь оператор CASE
, вам следует удалить имя столбца AS year_group
при копировании/вставке в GROUP BY
пункт:
SELECT CASE WHEN year = 'FR' THEN 'FR' КОГДА год = «ТАК», ТОГДА «ТАК» КОГДА год = 'JR', ТОГДА 'JR' КОГДА год = 'SR', ТОГДА 'SR' ELSE 'Нет данных за год' END AS year_group, COUNT(1) КАК считать ОТ benn.college_football_players СГРУППИРОВАТЬ ПО РЕГИСТРУ, КОГДА год = 'FR', ТОГДА 'FR' КОГДА год = «ТАК», ТОГДА «ТАК» КОГДА год = 'JR', ТОГДА 'JR' КОГДА год = 'SR', ТОГДА 'SR' ELSE 'Нет данных за год' END
Объединение операторов CASE
с агрегациями поначалу может показаться сложным. Часто полезно сначала написать запрос, содержащий оператор CASE
, а затем выполнить его самостоятельно. Используя предыдущий пример, вы можете сначала написать:
SELECT CASE WHEN year = 'FR' THEN 'FR' КОГДА год = «ТАК», ТОГДА «ТАК» КОГДА год = 'JR', ТОГДА 'JR' КОГДА год = 'SR', ТОГДА 'SR' ELSE 'Нет данных за год' END AS year_group, * ОТ benn.college_football_players
Приведенный выше запрос покажет все столбцы таблицы benn.college_football_players
, а также столбец, показывающий результаты оператора CASE
. Оттуда вы можете заменить *
агрегацией и добавить предложение GROUP BY
. Попробуйте этот процесс, если вы боретесь с любой из следующих практических проблем.
Практическая задача
Напишите запрос, который подсчитывает количество игроков весом более 300 фунтов для каждого из следующих регионов: Западное побережье (Калифорния, Орегон, Вашингтон), Техас и другие (все остальные).
ПопробуйтеСмотреть ответ
Практическая задача
Напишите запрос, вычисляющий общий вес всех игроков низшего класса (FR/SO) в Калифорнии, а также общий вес всех игроков высшего класса (JR/SR) в Калифорнии.
Попробуйте См. ответ
Использование CASE в агрегатных функциях
В предыдущих примерах данные отображались вертикально, но в некоторых случаях вам может понадобиться отобразить данные горизонтально. Это известно как «сводка» (как сводная таблица в Excel). Возьмем следующий запрос:
ВЫБЕРИТЕ РЕГИСТР, КОГДА год = 'FR', ТОГДА 'FR' КОГДА год = «ТАК», ТОГДА «ТАК» КОГДА год = 'JR', ТОГДА 'JR' КОГДА год = 'SR', ТОГДА 'SR' ELSE 'Нет данных за год' END AS year_group, COUNT(1) КАК считать ОТ benn.college_football_players СГРУППИРОВАТЬ ПО 1
И переориентировать его по горизонтали:
SELECT COUNT(CASE WHEN year = 'FR' THEN 1 ELSE NULL END) AS fr_count, COUNT(CASE WHEN year = 'SO' THEN 1 ELSE NULL END) AS so_count, COUNT(CASE WHEN year = 'JR' THEN 1 ELSE NULL END) КАК jr_count, COUNT (СЛУЧАЙ, КОГДА год = 'SR' THEN 1 ELSE NULL END) КАК sr_count ОТ benn. college_football_players
Стоит отметить, что переход от горизонтальной ориентации к вертикальной может быть значительно более сложной задачей в зависимости от обстоятельств, и более подробно она рассматривается в одном из следующих уроков.
Оттачивайте свои навыки SQL
Практические задачи
Напишите запрос, отображающий количество игроков в каждом штате, с игроками FR, SO, JR и SR в отдельных столбцах и в другом столбце для общего количества игроков. Расположите результаты так, чтобы штаты с наибольшим количеством игроков были первыми.
ПопробуйтеСмотреть ответ
Практическая задача
Напишите запрос, показывающий количество игроков в школах с именами, начинающимися с букв от A до M, и количество игроков в школах с именами, начинающимися с N-Z.
ПопробуйтеСмотреть ответ
SQL CASE | Промежуточный SQL
Начиная здесь? Этот урок является частью полного учебника по использованию SQL для анализа данных. Проверьте начало.
В этом уроке мы рассмотрим:
- Оператор SQL CASE
- Добавление нескольких условий в оператор CASE
- Краткий обзор основ CASE
- Использование CASE с агрегатными функциями
- Использование CASE внутри агрегатных функций
- Практические задачи
В течение следующих нескольких уроков вы будете работать с данными о футболистах колледжей. Эти данные были собраны с ESPN 15 января 2014 г. из списков, перечисленных на этой странице, с помощью парсера Python, доступного здесь. В этом конкретном уроке вы будете придерживаться информации о ростере. Эта таблица говорит сама за себя — одна строка на игрока со столбцами, описывающими атрибуты этого игрока. Запустите этот запрос, чтобы проверить необработанные данные:
ВЫБЕРИТЕ * ИЗ benn.college_football_players
Оператор CASE
— это способ SQL для обработки логики if/then. За оператором CASE
следует как минимум одна пара операторов WHEN
и THEN
— эквивалент SQL оператора IF/THEN в Excel. Из-за этой пары у вас может возникнуть соблазн назвать это SQL CASE WHEN
, но CASE
является принятым термином.
Каждый оператор CASE
должен заканчиваться цифрой 9.0029 КОНЕЦ заявление. Оператор ELSE
является необязательным и предоставляет способ захвата значений, не указанных в операторах WHEN
/ THEN
. CASE
проще всего понять в контексте примера:
SELECT player_name, год, СЛУЧАЙ, КОГДА год = 'SR' THEN 'да' ELSE NULL END AS is_a_senior ОТ benn.college_football_players
Проще говоря, вот что происходит:
-
Оператор CASE
проверяет каждую строку на предмет истинности условного оператора —year = 'SR'
. - Для любой заданной строки, если это условное выражение истинно, слово «да» печатается в столбце, который мы назвали
is_a_senior
. - В любой строке, для которой условное выражение ложно, ничего не происходит в этой строке, оставляя нулевое значение в столбце
is_a_senior
. - В то же время, когда все это происходит, SQL извлекает и отображает все значения в
player_name
игод
столбцов.
Приведенный выше запрос довольно легко увидеть, что происходит, потому что мы включили оператор CASE
вместе с самим столбцом year
. Вы можете проверить каждую строку, чтобы увидеть, соответствует ли год
условию год = «SR»
, а затем просмотреть результат в столбце, сгенерированном с помощью инструкции CASE
.
Но что, если вам не нужны нулевые значения в is_a_senior 9столбец 0030? Следующий запрос заменяет эти нули на «нет»:
SELECT player_name, год, СЛУЧАЙ, КОГДА год = 'SR' THEN 'да' ELSE 'no' END AS is_a_senior ОТ benn.college_football_players
Практическая задача
Напишите запрос, включающий столбец с пометкой «да», если игрок из Калифорнии, и сначала отсортируйте результаты с этими игроками.
ПопробуйтеСмотреть ответ
Вы также можете определить количество результатов в Оператор CASE
, включив любое количество операторов WHEN
/ THEN
:
SELECT player_name, масса, СЛУЧАЙ, КОГДА вес > 250, ТОГДА «более 250» КОГДА вес > 200, ТОГДА "201-250" КОГДА вес > 175, ТОГДА '176-200' ELSE '175 или меньше' END AS Weight_group ОТ benn.college_football_players
В приведенном выше примере операторы WHEN
/ THEN
будут оцениваться в том порядке, в котором они написаны. Итак, если значение в вес
столбца данной строки равен 300, это даст результат «более 250». Вот что произойдет, если значение в столбце weight
равно 180, SQL сделает следующее:
- Проверьте, больше ли
weight
250. 180 не больше 250, поэтому переходите к следующемуКОГДА
/ТОГДА
- Проверьте, не превышает ли
вес
200. 180 не больше 200, поэтому переходите к следующемуКОГДА
/ЗАТЕМ
- Проверьте, не больше ли
weight
175. 180 больше 175, поэтому запишите «175-200» в столбцеweight_group
.
Несмотря на то, что все вышеперечисленное работает, на самом деле лучше всего создавать операторы, которые не перекрываются. КОГДА вес > 250
и КОГДА вес > 200
перекрываются для каждого значения больше 250, что немного сбивает с толку. Лучше написать это так:
SELECT player_name, масса, СЛУЧАЙ, КОГДА вес > 250, ТОГДА «более 250» КОГДА вес > 200 И вес <= 250, ТО '201-250' КОГДА вес > 175 И вес <= 200, ТОГДА '176-200' ELSE '175 или меньше' END AS Weight_group ОТ benn.college_football_players
Практическая задача
Напишите запрос, включающий имена игроков и столбец, который классифицирует их по четырем категориям в зависимости от роста. Имейте в виду, что ответ, который мы даем, является лишь одним из многих возможных ответов, поскольку вы можете разделить рост игроков по-разному.
ПопробуйтеСмотреть ответ
Вы также можете объединить несколько условных операторов с И
и ИЛИ
так же, как в ГДЕ 9Предложение 0030:
ВЫБЕРИТЕ player_name, СЛУЧАЙ, КОГДА год = 'FR' И позиция = 'WR', ТО 'frosh_wr' ELSE NULL END AS sample_case_statement ОТ benn.college_football_players
Краткий обзор основ CASE:
- Оператор
CASE
всегда находится в предложенииSELECT
. -
CASE
должен включать следующие компоненты:WHEN
,THEN
иEND
.ELSE
является дополнительным компонентом. - Вы можете сделать любой условный оператор, используя любой условный оператор (например,
WHERE
) междуWHEN
иTHEN
. Это включает в себя объединение нескольких условных операторов с использованиемИ
иИЛИ
. - Вы можете включить несколько операторов
WHEN
, а также операторELSE
для работы с любыми неадресованными условиями.
Практическая задача
Напишите запрос, который выбирает все столбцы из benn.college_football_players
и добавляет дополнительный столбец, в котором отображается имя игрока, если этот игрок является младшим или старшим.
Попробуйте См. ответ
Использование CASE с агрегатными функциями
Несколько более сложная и существенно более полезная функциональность CASE
достигается за счет объединения его с агрегатными функциями. Например, предположим, что вы хотите подсчитывать только те строки, которые соответствуют определенному условию. Поскольку COUNT
игнорирует нули, вы можете использовать Оператор CASE
для оценки условия и получения нулевых или ненулевых значений в зависимости от результата:
SELECT CASE WHEN year = 'FR' THEN 'FR' ELSE 'Not FR' END AS year_group, COUNT(1) КАК считать ОТ benn. college_football_players СГРУППИРОВАТЬ ПО РЕГИСТРУ, КОГДА год = 'FR', ТОГДА 'FR' ELSE 'Не FR' END
Теперь вы можете подумать: «Почему бы мне просто не использовать предложение WHERE
для фильтрации строк, которые я не хочу учитывать?» Вы могли бы сделать это — это выглядело бы так:
ВЫБРАТЬ СЧЕТЧИК(1) КАК fr_count ОТ benn.college_football_players ГДЕ год = 'FR'
Но что, если вы также хотите посчитать пару других условий? Использование предложения WHERE
позволяет учитывать только одно условие. Вот пример подсчета нескольких условий в одном запросе:
SELECT CASE WHEN year = 'FR' THEN 'FR' КОГДА год = «ТАК», ТОГДА «ТАК» КОГДА год = 'JR', ТОГДА 'JR' КОГДА год = 'SR', ТОГДА 'SR' ELSE 'Нет данных за год' END AS year_group, COUNT(1) КАК считать ОТ benn.college_football_players СГРУППИРОВАТЬ ПО 1
Приведенный выше запрос — отличное место для использования чисел вместо столбцов в предложении GROUP BY
, потому что повторение оператора CASE
в предложении GROUP BY
сделало бы запрос неприемлемо длинным. В качестве альтернативы вы можете использовать псевдоним столбца в предложении GROUP BY
следующим образом:
SELECT CASE WHEN year = 'FR' THEN 'FR' КОГДА год = «ТАК», ТОГДА «ТАК» КОГДА год = 'JR', ТОГДА 'JR' КОГДА год = 'SR', ТОГДА 'SR' ELSE 'Нет данных за год' END AS year_group, COUNT(1) КАК считать ОТ benn.college_football_players ГРУППА ПО year_group
Обратите внимание, что если вы решите повторить весь оператор CASE
, вам следует удалить имя столбца AS year_group
при копировании/вставке в предложение GROUP BY
:
SELECT CASE WHEN year = 'FR' ТОГДА 'ФР' КОГДА год = «ТАК», ТОГДА «ТАК» КОГДА год = 'JR', ТОГДА 'JR' КОГДА год = 'SR', ТОГДА 'SR' ELSE 'Нет данных за год' END AS year_group, COUNT(1) КАК считать ОТ benn.college_football_players СГРУППИРОВАТЬ ПО РЕГИСТРУ, КОГДА год = 'FR', ТОГДА 'FR' КОГДА год = «ТАК», ТОГДА «ТАК» КОГДА год = 'JR', ТОГДА 'JR' КОГДА год = 'SR', ТОГДА 'SR' ELSE 'Нет данных за год' END
Объединение операторов CASE
с агрегациями поначалу может показаться сложным. Часто полезно сначала написать запрос, содержащий оператор CASE
, а затем выполнить его самостоятельно. Используя предыдущий пример, вы можете сначала написать:
SELECT CASE WHEN year = 'FR' THEN 'FR' КОГДА год = «ТАК», ТОГДА «ТАК» КОГДА год = 'JR', ТОГДА 'JR' КОГДА год = 'SR', ТОГДА 'SR' ELSE 'Нет данных за год' END AS year_group, * ОТ benn.college_football_players
Приведенный выше запрос покажет все столбцы таблицы benn.college_football_players
, а также столбец, показывающий результаты оператора CASE
. Оттуда вы можете заменить *
агрегацией и добавить предложение GROUP BY
. Попробуйте этот процесс, если вы боретесь с любой из следующих практических проблем.
Практическая задача
Напишите запрос, который подсчитывает количество игроков весом более 300 фунтов для каждого из следующих регионов: Западное побережье (Калифорния, Орегон, Вашингтон), Техас и другие (все остальные).
ПопробуйтеСмотреть ответ
Практическая задача
Напишите запрос, вычисляющий общий вес всех игроков низшего класса (FR/SO) в Калифорнии, а также общий вес всех игроков высшего класса (JR/SR) в Калифорнии.
Попробуйте См. ответ
Использование CASE в агрегатных функциях
В предыдущих примерах данные отображались вертикально, но в некоторых случаях вам может понадобиться отобразить данные горизонтально. Это известно как «сводка» (как сводная таблица в Excel). Возьмем следующий запрос:
ВЫБЕРИТЕ РЕГИСТР, КОГДА год = 'FR', ТОГДА 'FR' КОГДА год = «ТАК», ТОГДА «ТАК» КОГДА год = 'JR', ТОГДА 'JR' КОГДА год = 'SR', ТОГДА 'SR' ELSE 'Нет данных за год' END AS year_group, COUNT(1) КАК считать ОТ benn.college_football_players СГРУППИРОВАТЬ ПО 1
И переориентировать его по горизонтали:
SELECT COUNT(CASE WHEN year = 'FR' THEN 1 ELSE NULL END) AS fr_count, COUNT(CASE WHEN year = 'SO' THEN 1 ELSE NULL END) AS so_count, COUNT(CASE WHEN year = 'JR' THEN 1 ELSE NULL END) КАК jr_count, COUNT (СЛУЧАЙ, КОГДА год = 'SR' THEN 1 ELSE NULL END) КАК sr_count ОТ benn.