【SQL】Result set operation

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....

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325379887&siteId=291194637