我有以下查询:
SELECT
D.[Year] AS [Year]
, D.[Month] AS [Month]
, CASE
WHEN f.Dept IN ('XSD') THEN 'Marketing'
ELSE f.Dept
END AS DeptS
, COUNT(DISTINCT f.OrderNo) AS CountOrders
FROM Sales.LocalOrders AS l WITH
INNER JOIN Sales.FiscalOrders AS f
ON l.ORDER_NUMBER = f.OrderNo
INNER JOIN Dimensions.Date_Dim AS D
ON CAST(D.[Date] AS DATE) = CAST(f.OrderDate AS DATE)
WHERE YEAR(f.OrderDate) = 2019
AND f.Dept IN ('XSD', 'PPM', 'XPP')
GROUP BY
D.[Year]
, D.[Month]
, f.Dept
ORDER BY
D.[Year] ASC
, D.[Month] ASC
Run Code Online (Sandbox Code Playgroud)
我得到以下结果,ORDER …
我有下表:
| 团队 | 电话号码 | 订单号 | 通话日期 | 订购日期 |
|---|---|---|---|---|
| TM1 | 2222222222 | 26699443 | 2021-01-28 | 2021-02-05 |
| TM1 | 1111111111 | 26699450 | 2021-01-22 | 2021-01-22 |
| TM2 | 5555555555 | 26699466 | 2021-02-22 | 2021-02-23 |
| TM2 | 5555555555 | 26699467 | 2021-01-22 | 2021-02-01 |
| TM3 | 7777777777 | 26699488 | 2020-12-10 | 2021-01-03 |
我想计算每个团队每个月从电话到订单的平均时间。这是我的查询:
SELECT
Team,
MONTH(CallDate),
AVG(DATEDIFF(day,CallDate,OrderDate))
FROM MyTab AS C
GROUP BY Team, MONTH(CallDate)
Run Code Online (Sandbox Code Playgroud)
我想计算 CallDate 和 OrderDate 之间的差异,然后为每个团队应用每个月的平均值。
我有以下 SQL 查询:
MERGE INTO member_staging x
USING (SELECT member_id, first_name, last_name, rank FROM members) y
ON (x.member_id = y.member_id)
WHEN MATCHED THEN
UPDATE SET x.first_name = y.first_name,
x.last_name = y.last_name,
x.rank = y.rank
WHERE x.first_name <> y.first_name OR
x.last_name <> y.last_name OR
x.rank <> y.rank
WHEN NOT MATCHED THEN
INSERT(x.member_id, x.first_name, x.last_name, x.rank)
VALUES(y.member_id, y.first_name, y.last_name, y.rank);
Run Code Online (Sandbox Code Playgroud)
我想在 Hive 查询中实现它,HIVE 中是否有 MERGE JOIN 的等效项?