タグ

caseとwhenに関するkiyo_hikoのブックマーク (2)

  • 第3回 SQL流条件分岐(3) 表頭の複雑な集計 | gihyo.jp

    これも、リスト7のクエリを簡単に修正するだけで対応できます(リスト8⁠)⁠。 リスト8 表頭:年齢階級・性別、表側:部署(小計・合計あり) SELECT dept, COUNT(*), SUM(CASE WHEN age <= 30 THEN 1 ELSE 0 END) AS "若手(計)", SUM(CASE WHEN age <= 30 AND sex = '男' THEN 1 ELSE 0 END) AS "若手(男)", SUM(CASE WHEN age <= 30 AND sex = '女' THEN 1 ELSE 0 END) AS "若手(女)", SUM(CASE WHEN age >= 31 THEN 1 ELSE 0 END) AS "ベテラン(計)", SUM(CASE WHEN age >= 31 AND sex = '男' THEN 1 ELSE 0 END)

    第3回 SQL流条件分岐(3) 表頭の複雑な集計 | gihyo.jp
    kiyo_hiko
    kiyo_hiko 2014/07/22
    大昔やっぱりCASE~WHENでこんな感じのクロス集計書いたけど概ね忘れてた。参考になった。
  • Rubyのcaseを〇〇(言語名)のswitch文だと思っている人たちにぼくから一言ガツンと申し上げたい

    Rubyのcase」を一瞥し「あー要は〇〇(言語名)のswitchね」などと早合点し、その後もその真の価値を知ることなく一生を終えるプログラマが近年跡を絶たない。加えて、「今更条件分岐?RubyはOOPなんだからポリモフィズムじゃね?」とか「HashにProc突っ込んでcallするのがオレ流。」とかうそぶく人たちもまた増加の一途を辿っている。 そんな世の中にあって、ぼくは一言、できればガツンと一言申し上げたい。生まれも育ちもRubyなぼくから、是非ともそんな人たちに「Rubyのcase」について一言申し上げておきたい。 ─ 問題1 ─ 名前name、レベルlevel、ポイントpointの各属性を持った複数のCharacterオブジェクトcharlie, liz, benがある。 class Character < Struct.new(:name, :level, :point) def

    kiyo_hiko
    kiyo_hiko 2013/02/25
  • 1