mysql 에서 데이터를 rows를 출력 후 이에 대한 값을 %로 출력하려고 합니다
아직 초보 수준이라 그런지 여기저기 다 뒤져서 적용해봐도 에러만 계속 뜨네요...
그래서 이렇 도움을 받고자 질문 드립니다.
select
name, rows
from
information_schema.tables
where
table_schema = 'tables'
order by table_rows desc;
까지 하면
name | rows | percentage |
b | 20 | |
a | 10 | |
d | 10 | |
c | 5 | |
e | 5 |
여기까지는 나오는데 %값을 출력하고 싶은데 어렵네요..
pajama님 쿼리 약간 수정해서, ROUND 적용은 이렇게 한 번 해 보시죠.
SELECT TABLE_NAME , TABLE_ROWS , ( TABLE_ROWS / SUM(TABLE_ROWS) OVER() ) * 100 AS rowPercent -- 테이블별 row수 비율 , ROUND( ( TABLE_ROWS / SUM(TABLE_ROWS) OVER() )*100 , 1) AS roundPercent -- 비율 Round , SUM(TABLE_ROWS) OVER () AS totalRows -- 전체 Row수 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'mysql' ORDER BY TABLE_NAME