SQL実践で出会った知識点
900 ワード
集合関数count() count()統計タプルの個数、すなわち count(0)、count(1)とcount(*)の実行効率は同じです。 count(column)とcount(*) もしcolumnにnullが含まれていたら、countはnullを統計しません。count(*)はnullを統計します。 もしcolumnがnullではないと判定されたら、count(row)とcount(*)はインデックスを外し、実行効率は同じです。 where条件式を含めると、count()はcount(row)より速いです。したがって、できるだけcount()を使用します。 常にcount(*)を使用すれば、全表スキャンによる全体性能への影響を避けるために、最小のcolumnを探して非集約インデックスを作成することができる。 接続関数concat concat()は、2つの文字列を1つの文字列に接続するためのもので、例えば出席率接続%を表します。 group_concat()は同じ行の文字列を接続するために使用され、グループbyと一緒に使用されます。
CONCAT( ROUND( ( count( tml.checkin_date ) / COUNT( tml.course_id ) * 100 ), 2 ), "%" ) AS attendentRate
sql SELECT (SELECT GROUP_CONCAT( cdp1.dept_name, ":", cdp1.count_participant ORDER BY cdp1.dept_name ) FROM count_dept_people cdp1 WHERE cdp1.course_id = tcl.id )as namelist FROM tml group by tml.id