gpt4 book ai didi

mysql - Rails db 中性数据透视表或交叉表

转载 作者:行者123 更新时间:2023-11-29 15:06:57 25 4
gpt4 key购买 nike

有谁知道使用 activerecord 构建数据透视表的方法,该数据透视表将是远程数据库中立的吗?我试图避免使用 find_by_sql 和数据库特定查询,但对于数据透视表或交叉表查询,我不知道如何以非特定于 MySQL 的方式执行此操作。 IE 我的 mySQL find_by_sql 在 postgresql 数据库上中断。

我找到了http://crosstab.rubyforge.org/这个晦涩的交叉表 gem 可能有用,但我想知道是否其他人有更好的解决方案。

像这样荒谬的例子,它基本上只是翻转 table 上的轴:

SELECT availables.name, rooms.id,
MAX(IF(to_days(availables.bookdate) - to_days('2009-06-13') = 0, availables.price, '')) AS day1,
MAX(IF(to_days(availables.bookdate) - to_days('2009-06-13') = 1, availables.price, '')) AS day2,
MAX(IF(to_days(availables.bookdate) - to_days('2009-06-13') = 2, availables.price, '')) AS day3,
MAX(IF(to_days(availables.bookdate) - to_days('2009-06-13') = 3, availables.price, '')) AS day4,
MAX(IF(to_days(availables.bookdate) - to_days('2009-06-13') = 4, availables.price, '')) AS day5,
MAX(IF(to_days(availables.bookdate) - to_days('2009-06-13') = 5, availables.price, '')) AS day6,
MAX(IF(to_days(availables.bookdate) - to_days('2009-06-13') = 6, availables.price, '')) AS day7,
AVG(availables.price),SUM(availables.price)
FROM `availables`
INNER JOIN rooms
ON availables.room_id=rooms.id
WHERE availables.room_id = '18382'
GROUP BY availables.name

最佳答案

这是一个旧的插件,但可能有用:ActiveWarehouse

关于mysql - Rails db 中性数据透视表或交叉表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1782270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com