SELECT文でGROUP BYを使う時、SELECT句でカラムにAS句の別名をつけるなら、GROUP BY句でも別名を付ける
MySQLを使っていて、LaravelのO/RマッパーでSELECT文を呼び出した際、表題のエラーが出ました。
toSql() でSQL文を取り出し、MySQLの対話環境でUnknown column 'hogehoge' in 'group statement'
とエラーが出てくれたのでわかりました。
これはダメ
select id, name, DATE_FORMAT(date_column, "%Y-%m-%d") AS date, SUM(point) AS amount from employee GROUP BY DATE_FORMAT(date_column, "%Y-%m-%d") ORDER BY DATE_FORMAT(date_column, "%Y-%m-%d");
これでOK
select id, name, DATE_FORMAT(date_column, "%Y-%m-%d") AS date, SUM(point) AS amount from employee GROUP BY date ORDER BY DATE_FORMAT(date_column, "%Y-%m-%d");
GROUP BY 句は別名を付けたらその別名を使わなければいけない。ORDER BY 句は別名でなくても大丈夫。
Laravel の O/R マッパーだと
DB::table('employee')->groupBy('date')->selectRaw('id, name, DATE_FORMAT(date_column, "%Y-%m-%d") AS date, SUM(point) AS amount')->get()
MathJaxによる数式表示テスト
こちら
【行列式編】置換と巡回置換 | 大学1年生もバッチリ分かる線形代数入門
の表示がとてもきれいだったので。
インライン
エネルギーと質量には \(E=mc^2\) の関係がある。
ブロック
$$
x = \frac{-b \pm \sqrt{b^2-4ac}}{2a}
$$
埋め込み方法
こちら Configuring and Loading MathJax — MathJax 3.1 documentation より、
<script> MathJax = { tex: { inlineMath: [['$', '$'], ['\\(', '\\)']] }, svg: { fontCache: 'global' } }; </script> <script type="text/javascript" id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js"> </script>
をコピーして、
デザイン>カスタマイズ>フッタ
で、フッタ領域に貼り付ける。
via
ディレクトリ内のファイルごとの行数を調べる
$ wc -l `find dir -name "*hoge*"` $ find dir -name "*hoge*" | xargs wc -l
下のほうが好き
javascriptの分割代入で、プロパティの微妙に違うオブジェクトに値を入れるにはどうすればよいのか?
const a = {id: 1, type: "peperback", size: { width: 10, height: 15, weight: 300}}; const b = {};
としたとき、オブジェクト b に オブジェクト a の id, type, sizeのweight だけを取り出して入れたい。
ベタに入れるとすれば
b.id = a.id; b.type = a.type; b.size = {}; b.size.weight = a.size.weight;
となるが、なんとも……
分割代入などを使って、一気に、省力的に代入することはできないのだろうか?
検索したが見つけることができませんでした。うーん。