简化我的数据库的示例是一个表,其中
CN REG# CAPACITY
---------- ---------- ----------
0 LUCY02 43000
6 QRT834 5550
3 SYF777 3333
12 PKR768 1234
5 SST005 12000
6 KKK007 10000
3 PKR008 22000
这是通过联接两个表而创建的。这是join语句:
select count(tp.reg#) as cn,t.reg#, CAPACITY
from truck t
join trip tp
on t.reg# = tp.reg#
group by tp.reg#, CAPACITY, t.reg#
现在,我如何编写一条语句以仅打印出现次数最少且非零的行。在我们的示例中为3。
预期输出为
3 SYF777 3333
3 PKR008 22000
到目前为止,我没有做过的事情是:
select count(tp.reg#) as cn,t.reg#, CAPACITY
from truck t
left join trip tp
on t.reg# = tp.reg#
left join
(
select dd, min(d) as ds
from(
select count(*)as d, ti.CAPACITY, ti.reg# as dd
from truck ti, trip tp
where tp.reg# = ti.reg#
group by ti.reg#, ti.CAPACITY
)
group by dd
)
on t.reg# = dd
group by tp.reg#, CAPACITY, t.reg#
嗨,您可以尝试一下
select * from
(select count(tp.reg#) as cn,t.reg#, CAPACITY
from truck t
join trip tp
on t.reg# = tp.reg#
group by tp.reg#, CAPACITY, t.reg#)
where cn = (select min(cn) from (select count(tp.reg#) as cn,t.reg#, CAPACITY
from truck t
join trip tp
on t.reg# = tp.reg#
where cn > 0
group by tp.reg#, CAPACITY, t.reg#))
希望对您有用...谢谢
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句