请教一条非常难的sql查询,试试你的数据库编写水平
发布网友
发布时间:2022-04-09 05:59
我来回答
共5个回答
热心网友
时间:2022-04-09 07:28
--200到300间
Select max(hotelprice),min(hotelprice),count(housePic),* From hotelprice
inner join hotel on hotle.hotelname = hotelprice.hotelname
inner join hotel on hotelpic.hotelname = hotelprice.hotelname
where houseprice between 200 and 300
group by hotel.hotelname
声明一下,以上是一句,仅仅是换行写 好看些
利用分组查询原理,以酒店名分组,这样可按酒店名分类,找出各酒店内最高价,最低价在200-300这间。
未经测试,但原理一定正确。
最大值、最小值、计数、连接查询、分组查询都用上了。
使用分组查询的原因:
max\min\count等均为聚合函数,要和其他信息一齐显示,并要按酒店分类,只能使用分组查询。
但个人认为,这个数据库三个表的设计是有问题的。
首先,这三个表只能通过酒店名称来连接。而id应该为标识列,主键,这样的话,三个表无法建立主外键关系。
其次,没有主外键关系的话,如何确保添加一个酒店的图片信息,确保酒店信息也有??主表数据都没有的话,这条数据以后就冗余数据了。
还有,你要统计的酒店价格、图片等信息应该使用非空约束。否则统计数据就会出错。
最后。没有必要把SQL写成一句,多句的话可写的简单得多,还可以利用视图、临时表等手段来实现。多句SQL,可由存储过程来调用。而且效率要比单句直接调用要高。(非多次查询或非建立临时表的情况下)
热心网友
时间:2022-04-09 08:46
楼住意思是:
select 酒店信息,酒店的最低价,最高价,每个酒店的图片数目,酒店最低价在200-300之间,整个城市酒店的最低价
这样的样式吗??
热心网友
时间:2022-04-09 10:21
楼上正解
跟我想到一块去了,刚装好ORACLE 10G 很晚了
明天测试,看看能不能解答哈哈
热心网友
时间:2022-04-09 12:12
同意楼上的楼上的 ... 你的表设计得太不合理了... 建议先想个好点的表格模式 对于代码的书写会更具逻辑性
热心网友
时间:2022-04-09 14:20
查询出某个城市所有的酒店信息
整个城市酒店的最低价
什么逻辑啊????
悖论!
请教一条非常难的sql查询,试试你的数据库编写水平
最后。没有必要把SQL写成一句,多句的话可写的简单得多,还可以利用视图、临时表等手段来实现。多句SQL,可由存储过程来调用。而且效率要比单句直接调用要高。(非多次查询或非建立临时表的情况下)
SQL查询语句求助
第一题:如果单单查询 选修语文 select 学生表.姓名,年龄,性别,籍贯 from 学生表,选修表 where 学生表.姓名 = 选修表.姓名 and 选修课程= '语文'第二题:同时选修 语文跟数学的 因为数据库中 没有全称量词;用离散数学转换;这里符号不好打,就不写了 要用到存在 量词 exists ;因为还要有...
oracle中非常难的sql,大家帮解答下,谢啦
insert into ta values(1,'a001');insert into ta values(2,'a002');insert into ta values(3,'a003');insert into tb values(1,'2011-01-01','u001',1);insert into tb values(2,'2011-01-01','u002',2);insert into tb values(3,'2011-01-01','u003',3);insert into tb ...
求一条SQL语句,怎么样把从数据库中查出来为空的值赋为“0”,是所有为...
1、select case C_NUMBER when NULL then '0' else C_NUMBER end from T_SCORE如果这条语句执行不对,那么说明你的C_NUMBER字段的NULL不是真正的NULL,而是字符串“NULL”,所以需要这样的SQL:select case C_NUMBER when 'NULL' then '0' when 'null' then '0' else C_NUMBER end from T...
sql语句,查询数据库里除了某一条记录外的所有记录。
要查询数据库中除了特定一条记录之外的所有记录,可以按照以下步骤操作:首先,打开SQLServer的可视化工具,这将为您提供一个直观的界面来执行SQL命令。接着,打开新建查询窗口,这是一个专门用于编写和测试SQL语句的区域。假设您想要排除名为'某条记录'的记录,您需要使用SELECT语句。在这种情况下,您应该...
求一sql语句,查询某一数据库的视图名字
谢谢了,我试过了了,非碘---这位的是正确的。我用的是sql2005,有点小差别,[xtype]='V' 改成[type]=‘V’。我刚找到了另一个办法,共享一下。use DB SELECT * FROM sys.views 如果不是sql2005改成 use DB SELECT * FROM sysviews 应该就可以查看此数据库的所有视图了。
如何使用一条sql可以把数据库表中的sql查出来并执行
你是在哪里遇到这种需求的?通常来说,你将查出来后将得到的值传给一个存储SQL语句的字符串变量,让相应执行SQL的函数来执行就可以了
如果输入一条查询一张表的sql语句,但数据库执行缓慢,如何并采取什么样的...
创建索引!如:select * from 产品 where 产品ID='1234'那么,在“产品ID”字段上如果创建的索引,则查询速度将会大大加快。另外,1、还可以通过Where条件,减少每次查询的数据量。2、将查询语句放在存储过程中,因为存储过程中的语句在首次调用时会被编译,以后再次调用进直接执行编译过的程序。
sql查数据库中时间最新的一条记录(查询数据库时间sql)
select*,max(create_time)froma wherecreate_time<="2017-03-2919:30:36"groupbyuser_id 这句可以理解为将结果集根据user_id分组,每组取time最大一条记录。这样就很好的实现了批量查询最近记录,并且仅仅需要遍历一次表,即使在数据量巨大的情况下也可以在很短的时间查出结果。
SQL数据库的一个表中有一字段FAmount(金额),如何查询其合计数的45%的...
你好!用sql语句直接查找比较难 ,因为不一定有那么多行能合计成78895.46,还是用程序处理吧,程序处理可以灵活一下,能够靠近这个数78895.46,但不一定等于这个数78895.46 我的回答你还满意吗~~