Mysql 在投票下方张贴的答案左边的勾号上唱。看看为什么它很重要!对答案进行投票也很重要。投票选出有帮助的答案。还有更多。。。当有人回答你的问题时,你可以检查一下该怎么办-。这当然更干净了,我真的很感激!我试图立即运行它,但最终在BigQuery中出错。我收到的错误
Mysql 在投票下方张贴的答案左边的勾号上唱。看看为什么它很重要!对答案进行投票也很重要。投票选出有帮助的答案。还有更多。。。当有人回答你的问题时,你可以检查一下该怎么办-。这当然更干净了,我真的很感激!我试图立即运行它,但最终在BigQuery中出错。我收到的错误,mysql,sql,google-bigquery,Mysql,Sql,Google Bigquery,在投票下方张贴的答案左边的勾号上唱。看看为什么它很重要!对答案进行投票也很重要。投票选出有帮助的答案。还有更多。。。当有人回答你的问题时,你可以检查一下该怎么办-。这当然更干净了,我真的很感激!我试图立即运行它,但最终在BigQuery中出错。我收到的错误是…:在第3行第36列遇到“max”。他期待着:“结束”。我没有最强的SQL技能,所以我不太确定我在这里缺少了什么。@BrianSchroeter。它缺少了连接运算符。这当然更干净了,我真的很感激!我试图立即运行它,但最终在BigQuery中出
在投票下方张贴的答案左边的勾号上唱。看看为什么它很重要!对答案进行投票也很重要。投票选出有帮助的答案。还有更多。。。当有人回答你的问题时,你可以检查一下该怎么办-。这当然更干净了,我真的很感激!我试图立即运行它,但最终在BigQuery中出错。我收到的错误是…:在第3行第36列遇到“max”。他期待着:“结束”。我没有最强的SQL技能,所以我不太确定我在这里缺少了什么。@BrianSchroeter。它缺少了连接运算符。这当然更干净了,我真的很感激!我试图立即运行它,但最终在BigQuery中出错。我收到的错误是…:在第3行第36列遇到“max”。他期待着:“结束”。我没有最强的SQL技能,所以我不太确定我在这里缺少了什么。@BrianSchroeter。它缺少连接运算符。
SELECT
sku,
CASE
WHEN MIN(YEAR) = MAX(YEAR) THEN MIN(YEAR)
ELSE CONCAT(MIN(YEAR), '-', MAX(YEAR))
END AS YEAR,
make, model, submodel, notes
FROM
(SELECT @ldfnr:= IF((@old_make = tab.make
AND @old_model = tab.model
AND @old_submodel = tab.submodel
AND @old_notes = tab.notes
AND (@old_year = tab.`year`
OR @old_year = tab.`year`-1)) , @ldfnr, @ldfnr+1) AS nr, tab.* ,
@old_make := tab.make , @old_model := tab.model ,
@old_submodel := tab.submodel , @old_notes := tab.notes ,
@old_year := tab.`year`
FROM tableName AS tab,
(SELECT @ldfnr:=0, @old_model:='', @old_submodel:='', @old_notes:='', @old_year:='', @old_make:='' ) AS tmp
ORDER BY make, model, submodel, notes, `YEAR` ASC) AS mytab
GROUP BY nr
ORDER BY nr;
+------+------+-----------+-------+----------+------------------------------------------+
| SKU | Year | Make | Model | Submodel | Notes |
+------+------+-----------+-------+----------+------------------------------------------+
| 0001 | 1995 | Chevrolet | Astro | Base | Clear Lens; Chrome Housing; Pair; 1 pc.; |
| 0001 | 1995 | Chevrolet | Astro | CL | Clear Lens; Chrome Housing; Pair; 1 pc.; |
| 0001 | 1995 | Chevrolet | Astro | LS | Clear Lens; Chrome Housing; Pair; 1 pc.; |
| 0001 | 1996 | Chevrolet | Astro | Base | Clear Lens; Chrome Housing; Pair; 1 pc.; |
| 0001 | 1996 | Chevrolet | Astro | CL | Clear Lens; Chrome Housing; Pair; 1 pc.; |
| 0001 | 1996 | Chevrolet | Astro | LS | Clear Lens; Chrome Housing; Pair; 1 pc.; |
| 0001 | 1997 | Chevrolet | Astro | Base | Clear Lens; Chrome Housing; Pair; 1 pc.; |
| 0001 | 1997 | Chevrolet | Astro | LT | Clear Lens; Chrome Housing; Pair; 1 pc.; |
| 0001 | 2001 | Chevrolet | Astro | Base | Clear Lens; Chrome Housing; Pair; 1 pc.; |
+------+------+-----------+-------+----------+------------------------------------------+
+------+-------------+-----------+-------+----------+------------------------------------------+
| SKU | Year | Make | Model | Submodel | Notes |
+------+-------------+-----------+-------+----------+------------------------------------------+
| 0001 | 1995 - 1997 | Chevrolet | Astro | Base | Clear Lens; Chrome Housing; Pair; 1 pc.; |
| 0001 | 1995 - 1996 | Chevrolet | Astro | CL | Clear Lens; Chrome Housing; Pair; 1 pc.; |
| 0001 | 1995 - 1996 | Chevrolet | Astro | LS | Clear Lens; Chrome Housing; Pair; 1 pc.; |
| 0001 | 1997 | Chevrolet | Astro | LT | Clear Lens; Chrome Housing; Pair; 1 pc.; |
| 0001 | 2001 | Chevrolet | Astro | Base | Clear Lens; Chrome Housing; Pair; 1 pc.; |
+------+-------------+-----------+-------+----------+------------------------------------------+
select sku, make, model, submodel, notes,
(case when min(year) = max(year) then min(year)
else min(year) || '-' || max(year)
end) as year
from (select qt.*,
sum(case when qtprev.make is null then 1 else 0 end) over (partition by qt.make, qt.model, qt.notes, qt.submodel, qt.sku order b qt.year) as grp
from `tint-world-aces-processing.aces_table.queryTest` qt left join
`tint-world-aces-processing.aces_table.queryTest` qtprev
on qt.make = qtprev.make and qt.model = qtprev.model and
qt.notes = qtprev.notes and qt.submodel = qtprev.submodel and
qt.sku = qtprev.sku and qt.year = qtprev.year + 1
) qt
group by sku, make, model, submodel, notes;