How to reuse complex queries with CREATE VIEW | Essential SQL
Learn how to create a SQL view so you can reuse your complex queries in your SQL Server, PostgeSQL, and MySQL databases.
More importantly watch until the end if you want to know how do a case insensitive replacement in PostgreSQL.
One Last Thing...
This video is part of my Intermediate Learning series. If you're interested in learning SQL subscribe to @Essential SQL and then check out our Intermediate Learner Playlist. Of course, I also encourage you to visit https://www.essentialsql.com to learn even more!
Important links:
Sample PizzaDB: https://github.com/kwenzel1/EssentialSQLSamples/tree/master/PizzaDB
Corresponding Article: https://www.essentialsql.com/sql-coalesce-function-and-null/
Source Code:
--First Query
select o.CustomerOrderID, o.OrderDate, c.CustomerID, c.LastName,
Sum(i.Quantity * p.Price) OrderPrice,
cast(Sum(i.Quantity * p.Price) * isnull(cp.PercentDiscount ,0) / 100.0 as numeric(14,2)) DiscountAmount,
cast(Sum(i.Quantity * p.Price) * (1.00 - (isnull(cp.PercentDiscount ,0) / 100.0)) as numeric(14,2)) FinalOrderPrice
from CustomerOrder o
inner join Customer c on o.CustomerID = c.CustomerID
inner join CustomerOrderItem i on o.CustomerOrderID = i.CustomerOrderID
inner join Product p on i.ProductID = p.ProductID
left join Coupon cp on o.CouponID = cp.CouponID
group by o.CustomerOrderID, o.OrderDate, c.CustomerID, c.LastName, cp.PercentDiscount
--SQL Server
create view CustomerOrderSummary
as
select o.CustomerOrderID, o.OrderDate, c.CustomerID, c.LastName,
Sum(i.Quantity * p.Price) OrderPrice,
cast(Sum(i.Quantity * p.Price) * isnull(cp.PercentDiscount ,0) / 100.0 as numeric(14,2)) DiscountAmount,
cast(Sum(i.Quantity * p.Price) * (1.00 - (isnull(cp.PercentDiscount ,0) / 100.0)) as numeric(14,2)) FinalOrderPrice
from CustomerOrder o
inner join Customer c on o.CustomerID = c.CustomerID
inner join CustomerOrderItem i on o.CustomerOrderID = i.CustomerOrderID
inner join Product p on i.ProductID = p.ProductID
left join Coupon cp on o.CouponID = cp.CouponID
group by o.CustomerOrderID, o.OrderDate, c.CustomerID, c.LastName, cp.PercentDiscount
--PostgesSQL
create view public.CustomerOrderSummary
as
select o.CustomerOrderID, o.OrderDate, c.CustomerID, c.LastName,
Sum(i.Quantity * p.Price) OrderPrice,
cast(Sum(i.Quantity * p.Price) * coalesce(cp.PercentDiscount ,0) / 100.0 as decimal(14,2)) DiscountAmount,
cast(Sum(i.Quantity * p.Price) * (1.00 - (coalesce(cp.PercentDiscount ,0) / 100.0)) as decimal(14,2)) FinalOrderPrice
from CustomerOrder o
inner join Customer c on o.CustomerID = c.CustomerID
inner join CustomerOrderItem i on o.CustomerOrderID = i.CustomerOrderID
inner join Product p on i.ProductID = p.ProductID
left join Coupon cp on o.CouponID = cp.CouponID
group by o.CustomerOrderID, o.OrderDate, c.CustomerID, c.LastName, cp.PercentDiscount;
--MySQL
create view CustomerOrderSummary
as
select o.CustomerOrderID, o.OrderDate, c.CustomerID, c.LastName,
Sum(i.Quantity * p.Price) OrderPrice,
cast(Sum(i.Quantity * p.Price) * coalesce(cp.PercentDiscount ,0) / 100.0 as decimal(14,2)) DiscountAmount,
cast(Sum(i.Quantity * p.Price) * (1.00 - (coalesce(cp.PercentDiscount ,0) / 100.0)) as decimal(14,2)) FinalOrderPrice
from CustomerOrder o
inner join Customer c on o.CustomerID = c.CustomerID
inner join CustomerOrderItem i on o.CustomerOrderID = i.CustomerOrderID
inner join Product p on i.ProductID = p.ProductID
left join Coupon cp on o.CouponID = cp.CouponID
group by o.CustomerOrderID, o.OrderDate, c.CustomerID, c.LastName, cp.PercentDiscount;
Что делает видео по-настоящему запоминающимся? Наверное, та самая атмосфера, которая заставляет забыть о времени. Когда вы заходите на RUVIDEO, чтобы посмотреть онлайн «How to reuse complex queries with CREATE VIEW | Essential SQL», вы рассчитываете на нечто большее, чем просто загрузку плеера. И мы это понимаем. Контент такого уровня заслуживает того, чтобы его смотрели в HD 1080, без дрожания картинки и бесконечного буферизации.
Честно говоря, Rutube сегодня — это кладезь уникальных находок, которые часто теряются в общем шуме. Мы же вытаскиваем на поверхность самое интересное. Будь то динамичный экшн, глубокий разбор темы от любимого автора или просто уютное видео для настроения — всё это доступно здесь бесплатно и без лишних формальностей. Никаких «заполните анкету, чтобы продолжить». Только вы, ваш экран и качественный поток.
Если вас зацепило это видео, не забудьте взглянуть на похожие материалы в блоке справа. Мы откалибровали наши алгоритмы так, чтобы они подбирали контент не просто «по тегам», а по настроению и смыслу. Ведь в конечном итоге, онлайн-кинотеатр — это не склад файлов, а место, где каждый вечер можно найти свою историю. Приятного вам отдыха на RUVIDEO!
Видео взято из открытых источников Rutube. Если вы правообладатель, обратитесь к первоисточнику.