# 返回2007年6月的订单
SELECT *
FROM Sales.Orders
WHERE YEAR(orderdate) = 2007
AND MONTH(orderdate) = 6;
SELECT *
FROM Sales.Orders
WHERE orderdate >= '20070601'
AND orderdate < '20070701'
# 返回每月最后一天的订单
SELECT *
FROM Sales.Orders
WHERE orderdate IN
(
SELECT MAX(orderdate)
FROM
(
SELECT *,YEAR(orderdate),MONTH(orderdate)
FROM Sales.Orders
) AS t1
GROUP BY YEAR(orderdate),MONTH(orderdate)
);
SELECT *
FROM Sales.Orders
WHERE orderdate = EOMONTH(orderdate)
# 3.姓氏包含字母a两次及以上的员工
SELECT *
FROM HR.Employees
WHERE lastname LIKE '%a%a%';
# 4.总价(quantity*unitprice)大于1000的订单
SELECT orderid,(quantity*unitprice) AS totalvalue
FROM Sales.OrderDetails
WHERE (quantity*unitprice) > 1000;
# 不对!我们要考虑order_id会一样啊!然后再算总数
SELECT orderid,SUM(quantity*unitprice) AS totalvalue
FROM Sales.OrderDetails
GROUP BY orderid
HAVING SUM(quantity*unitprice) > 1000
ORDER BY totalvalue DESC;
# 5.2007年平均运费最高的三个国家
SELECT shipcountry,AVG(freight)AS avgfreight
FROM Sales.Orders
WHERE YEAR(orderdate) = 2007
GROUP BY shipcountry
ORDER BY AVG(freight) DESC
LIMIT 3;
# 6.分组排序
SELECT *,
(ROW_NUMBER() OVER (PARTITION BY cust_id ORDER BY orderdate,orderid)) AS ranknum
FROM Sales.Orders
ORDER BY custid,rownum;
# 7.
SELECT *,
CASE WHEN titleofcountesy IN ('Ms.' , 'Mrs.' ) THEN 'Female'
CASE WHEN titleofcountesy = 'Mr.' THEN 'Male'
ELSE 'Unknown'
END AS gender
FROM HR.Employees;
# 8.
SELECT custid,region
FROM Sales.Orders
GROUP BY CASE WHEN region IS NULL THEN 1 ELSE 0 END,region
2.4.6.8