reponの勉強メモ

主に勉強したことのメモです。

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()

git checkout -b hoge だけで安心できない

fugaというファイルをある程度変更してきたところで、自分がdevelopブランチで作業していることに気づく。

$ git checkout -b hoge

で、hogeブランチに移動、

$ git diff

modified: fuga

確認できたので、

$ git checkout develop

$ git checkout fuga

developブランチのfugaファイルをもとに戻す。

ふぃ〜安心だぁ。

$ git checkout fuga

$ git status

nothing to commit, working tree clean

無事死ねました。

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

www.halu7.com

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;

となるが、なんとも……

分割代入などを使って、一気に、省力的に代入することはできないのだろうか?

検索したが見つけることができませんでした。うーん。