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つの文字列に接続するためのもので、例えば出席率接続%を表します。CONCAT( ROUND( ( count( tml.checkin_date ) / COUNT( tml.course_id ) * 100 ), 2 ), "%" ) AS attendentRate
  • group_concat()は同じ行の文字列を接続するために使用され、グループbyと一緒に使用されます。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