我在表格中有一个Period列,其值格式为Year-SemiQuarter
。例如2016 BQ1,2016 BQ2,2016 BQ3 ....... 2016 BQ8,其中BQ1和BQ2会一起做1stQuarter为各自的一年。SImilar为他人
现在,我想将结果分组为
25美分硬币
我的桌子是这样的。将期间分为两列。
+====================+=============+================+==================================+=====+======================================+
| totalNumberOfUnits | productType | productSubType | SUBSTRING_INDEX(rsh.period, '-', 1 ) | SUBSTRING_INDEX(rsh.period, '-', -1) |
+====================+=============+================+==================================+=====+======================================+
| 1084 | Apartment | High Rise | 2018 | BQ1 |
+--------------------+-------------+----------------+----------------------------------+-----+--------------------------------------+
| 1284 | Apartment | High Rise | 2018 | BQ2 |
+--------------------+-------------+----------------+----------------------------------+-----+--------------------------------------+
| 1883 | Apartment | High Rise | 2018 | BQ3 |
+--------------------+-------------+----------------+----------------------------------+-----+--------------------------------------+
| 183 | Apartment | High Rise | 2018 | BQ4 |
+--------------------+-------------+----------------+----------------------------------+-----+--------------------------------------+
| 898 | Apartment | High Rise | 2018 | BQ5 |
+--------------------+-------------+----------------+----------------------------------+-----+--------------------------------------+
| 2377 | Apartment | High Rise | 2018 | BQ7 |
+--------------------+-------------+----------------+----------------------------------+-----+--------------------------------------+
| 2953 | Apartment | High Rise | 2018 | BQ8 |
+--------------------+-------------+----------------+----------------------------------+-----+--------------------------------------+
输出应为:
+====================+==+
| totalNumberOfUnits | |
+====================+==+
| 2368 | |
+--------------------+--+
| 2066 | |
+--------------------+--+
| 898 | |
+--------------------+--+
| 5330 | |
+--------------------+--+
因此totalNumberOfUnits
,2018年第一季度为2368,这是BQ1和BQ2的总和。其他人也是如此。没有关于BQ6的数据,所以totalNumberOfUnits
将是898,这是BQ5的单位semi-quarter
总数
这可能是微不足道的,但是我不确定该怎么做。在Stack Overflow中找不到相同的用例。谢谢您的帮助!!
我正在使用的MySQL版本是5.7.26
您可以使用字符串函数和聚合:
select
left(period, 4) as yyyy,
floor((right(rsh.period, 1) + 1) / 2) as q,
sum(totalNumberOfUnits) as totalNumberOfUnits
from mytable
group by yyyy, q
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句