当前位置:编程学习 > C#/ASP.NET >>

sql 统计 相同字段 记录数 .net vb.net

我在做一个设计,需要这样的统计,有三个问题。 问题一:在数据库中的某一个表,比如这个表是客户点菜的一个数据记录表,该表的字段有:ID(自动编号)、姓名、地址、时间、菜名、价格;现在我想从这个表中得到这样的一个结果,我要从这个表中获取“菜名”字段相同的数据的记录条数的最大值和获取该字段的菜名,请问这样的SQL语句如何写? 问题二:同理,我需要获取该表中“菜名”字段相同的数据的记录条数的最小值和获取该字段的菜名,请问这样的SQL语句如何写? 不需要对该问题长篇大论的粘贴,回答正确可额外再加分。
答案:1.
  select 菜名,count(菜名)from table group by 菜名 order by count(菜名)desc
   这样是获得所有菜的被点次数,然后根据你数据库的不同 获得其第一笔就好了
   如果是使用SQL Server 可在select 后使用 top1
   如果是使用Oracel 可在where 条件中 加rownum=1
2.select 菜名,count(菜名)from table group by 菜名 order by count(菜名)asc
   这样是按照升序排序的 这样同理取其第一笔就好了

不过这样如果有2笔被点数是一样的就只能选择一笔
其他:1. select top 1 * from (select 菜名,count(*) num from table group by 菜名) a order by num desc
2. select top 1 * from (select 菜名,count(*) num from table group by 菜名) a order by num asc 

上一个:如何学习vb.net 很多东西难以理解
下一个:vb.net 如何访问储存在arraylist中的实例的方法

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,