表中数字(id)的最大出现次数 - Yii2

时间:2015-06-21 00:57:45

标签: php mysql yii2

我有一个表格,其中包含有关用户订阅的详细信息(id,user_id,plan_id,product_id,amount..etc)。 我希望通过在表格列中最大限度地出现标识Await.result(promise.future, Duration.Inf) 来获得最喜欢的计划和产品。

我试图用这个 Find most frequent value in SQL column。但没有成功。

以下是我最喜欢的计划的查询:

(plan_id, product_id)

我只需要$subs = Subscription::findBySql("SELECT plan_id, COUNT(plan_id) AS `value_occurrence` FROM subscription GROUP BY plan_id ORDER BY `value_occurrence` DESC LIMIT 1"); plan_id的最大出现次数。

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

我认为你需要以这种方式计算plan_id和product_id的出现次数(我想你的模型叫做Subscription):

$plantCounts = Subcription::find()
  ->select(['COUNT(*) AS value_occurrence'])
  ->orderBy(['value_occurrence'= DESC ]
  ->groupBy(['plan_id'])
  ->one();

答案 1 :(得分:-1)

从任何行甚至在不同的行上作为源,你想要plan_id的最大值和product_id的最大值?总共有1排回来?

select max(plan_id) as plmax,
max(product_id) as prodmax
from subscription