如何将以下 3 个 select 语句包含在单个 mySQL 视图中
Posted
技术标签:
【中文标题】如何将以下 3 个 select 语句包含在单个 mySQL 视图中【英文标题】:How can the below 3 select statements be included in a single mySQL view 【发布时间】:2019-03-31 04:47:21 【问题描述】:需要创建一个单独的视图来执行下面的 3 个选择语句
我可以在 SQL 编辑器中执行它们并获得比率。
select @lag := count(twitter_handles) from handle_impressions where today_impressions > yest_impressions;
select @decay := count(twitter_handles) from handle_impressions where today_impressions < yest_impressions;
select @ratio := @lag/@decay;
目的是让一个视图封装 3 个选择语句以返回滞后、衰减和比率
【问题讨论】:
你错过了today_impressions = yest_impressions
时的情况。这是故意的吗?您可能还希望采取某种措施来防止除以 0。
很好,将比较之一更改为
【参考方案1】:
我们可以尝试使用条件聚合编写单个查询:
SELECT
COUNT(CASE WHEN today_impressions > yest_impressions THEN 1 END) AS lag_val,
COUNT(CASE WHEN today_impressions < yest_impressions THEN 1 END) AS decay_val,
COUNT(CASE WHEN today_impressions > yest_impressions THEN 1 END) /
COUNT(CASE WHEN today_impressions < yest_impressions THEN 1 END) AS ratio
FROM handle_impressions;
【讨论】:
以上是关于如何将以下 3 个 select 语句包含在单个 mySQL 视图中的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 PDO 从 PHP 中的单个 select 语句将孩子分配给父母?