String manipulation
Connection string: SELECT CONCAT(
MONTH ,'月') FROM tabelA
;
Intercept string: LEFT(character,integer)
; RIGHT(character,integer)
; SUBSTRING(character,start,length)
Specific string position:INSTR(character|columName,character)
two decimal places
SELECT ROUND(column_name,decimals) FROM table_name
SELECT CONVERT(DECIMAL(13,2),13.123)
Dates are grouped by month
SELECT * FROM TABLEA GROUP BY DATE_FORMAT('date', '%Y-%m')
Calculate the proportion of different categories for the day, and replace the null value
SELECT
t1.date,(ROUND(t2.great/t1.total,2))AS g_rate,IFNULL((ROUND(t3.`first`/t1.total,2)),0) AS f_rate,IFNULL((ROUND(t4.unknown/t1.total,2)),0) AS u_rate
FROM
(SELECT date,COUNT(*) AS total FROM production_qualification_urea GROUP BY date) AS t1
LEFT JOIN
(SELECT date,COUNT(*) AS great FROM production_qualification_urea WHERE grade='优等品' GROUP BY date) AS t2
ON
t1.date = t2.date
LEFT JOIN
(SELECT date,COUNT(*) AS `first` FROM production_qualification_urea WHERE grade='一等品' GROUP BY date) AS t3
ON
t1.date = t3.date
LEFT JOIN
(SELECT date,COUNT(*) AS `unknown` FROM production_qualification_urea WHERE grade='-' GROUP BY date) AS t4
ON
t1.date = t4.date
To be continued....