これが私のデータセットです(Ruby gem Sequelを使用しているのでハッシュ形式で)。ハッシュ名は列名です。
{:item_category=>"Bacon", :year=>1890, :avg_yr_value=>0.12}
{:item_category=>"Eggs (dozen)", :year=>1890, :avg_yr_value=>0.208}
{:item_category=>"Bacon", :year=>1891, :avg_yr_value=>0.126}
{:item_category=>"Eggs (dozen)", :year=>1891, :avg_yr_value=>0.221}
{:item_category=>"Bacon", :year=>1892, :avg_yr_value=>0.129}
{:item_category=>"Eggs (dozen)", :year=>1892, :avg_yr_value=>0.221}
{:item_category=>"Bacon", :year=>1893, :avg_yr_value=>0.142}
{:item_category=>"Eggs (dozen)", :year=>1893, :avg_yr_value=>0.224}
{:item_category=>"Bacon", :year=>1894, :avg_yr_value=>0.185}
これが私のコードです:
SELECT
string_agg(DISTINCT item_category, ' + ' ORDER BY item_category) AS items,
year,
sum(avg_yr_value) AS amount
FROM
earnings_and_prices
WHERE
item_category = 'Bacon' OR
item_category = 'Eggs (dozen)'
GROUP BY
year
HAVING
COUNT(DISTINCT item_category) = 2
ORDER BY
year
私の結果(Ruby gem Sequelを使用しているのでハッシュで):
{:items=>"Bacon + Eggs (dozen)", :year=>1890, :amount=>0.328}
{:items=>"Bacon + Eggs (dozen)", :year=>1891, :amount=>0.347}
{:items=>"Bacon + Eggs (dozen)", :year=>1892, :amount=>0.35}
{:items=>"Bacon + Eggs (dozen)", :year=>1893, :amount=>0.366}
コードを編集して、「ベーコン」の:amountと「卵(ダース)」の:amountが含まれるようにします。たとえば、次のようになります。
{:items=>"Bacon + Eggs (dozen)", :year=>1890, :amount=>0.328, :eggs_price=>0.208, :bacon_price=>0.12}
どうすればよいですか?