有一個 MySQL 表,其中 id 是日期與Ymd格式(插入行的那一刻)與增量 id的串聯。
| id | weight |
| 20200128001 | 100 |
| 20200601002 | 250 |
| 20201208003 | 300 |
| 20210128001 | 150 |
| 20210601002 | 200 |
| 20211208003 | 350 |
為了使我正在制作的一年“重量”總和:
SELECT sum(weight) as weight FROM `table` WHERE id LIKE '2020%';
導致這種情況:
650
我怎樣才能讓它按年份生成一個權重表,而不是按每個可能的年份查詢,導致這種情況:
| date | weight |
| 2020 | 650 |
| 2021 | 700 |
uj5u.com熱心網友回復:
使用 MySQL 中的字串處理函式之一,例如 left()
SELECT LEFT(id,4) as Year, SUM(weight) as Weight
FROM `table`
GROUP BY LEFT(id,4)
ORDER BY LEFT(id,4)
如果你想將結果限制在那 2 年
SELECT LEFT(id,4) as Year, SUM(weight) as Weight
FROM `table`
WHERE LEFT(id,4) IN (2021, 2022)
GROUP BY LEFT(id,4)
ORDER BY LEFT(id,4)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/400133.html
下一篇:將WooCommerceget_date_created()顯示為ddmmyyyy,而不是yyyy-mm-dd time
