我有一个表格,其中包含有关用户订阅的详细信息(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
的最大出现次数。
感谢您的帮助。
答案 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