我有一个看起来很像这样的MySQL数据库:
Term-----------LOB---------Date------ dde JM Part A 2016-07-01 drug waste JM Part A 2016-07-01 drug waste JM Part A 2016-07-01 Duplicates JM Part A 2016-07-01 credit balance JM Part B 2016-07-01 drug waste JM Part B 2016-07-01
所以,我希望每个LOB的TOP 4(或n)'术语'(lob是一个类别) - 每月
所以在这个例子中它可能是
JM Part A July 2016 --dde - 7 --drug waste - 5 --credit balance - 3 --duplicates - 1
JM Part B - July 2016 --dde - 7 --discharge stats- 5 --credit balances- 3 --overpayment - 1唉,我有点失落。我到目前为止能做的最好的是
SELECT term, lob, COUNT(term) uid_count FROM qs GROUP BY lob ORDER BY uid_count DESC LIMIT 5
这似乎显示了所有lobs和所有日期范围的前5个搜索字词。
所以任何帮助都将不胜感激。我正在寻找在PHP页面上显示报告。
感谢您的时间。
答案 0 :(得分:0)
如果不同Lob的数量很少,你可以使用union
(select Term, count(*)
from my_tbale
where Lob = 'JM Part A'
group by Term, `Date`
order by count(*) desc limit 5)
union
(select Term, count(*)
from my_tbale
where Lob = 'JM Part B'
group by Term, `Date`
order by count(*) desc limit 5)