sql笔试题(列出表中每个字段重复值最多的) 在一个表里,有很多字段,每个字段的值有很多重复的,让你用写个SQL语句,把每个字段中出现次数最多的值列出来,并在这个值的前面加上一个-1,比如有年龄和工资两个字段,里面出理次数最多的是18和3000,找出来并改成-118和-13000 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SQL> select age,sal from test; AGE SAL---------- ---------- 18 3000 17 3200 18 2500 19 3000 21 3100 18 3100 21 3000 19 3500 18 2800 20 300010 rows selectedSQL> SQL> SELECT '-1' || MAX(age) keep(DENSE_RANK LAST ORDER BY age_cnt) age_max, 2 '-1' || MAX(sal) keep(DENSE_RANK LAST ORDER BY sal_cnt) sal_max 3 FROM (SELECT t.*, 4 COUNT(*) over(PARTITION BY age) age_cnt, 5 COUNT(*) over(PARTITION BY sal) sal_cnt 6 FROM test t) 7 /AGE_MAX SAL_MAX------------------------------------------ -------------------------------------------118 -13000 不好意思,再问下,那个keep和over是什么?函数吗?从来没用过,到哪儿找相关的讲解呢? 分析函数lz自己baidu一下吧 关于一个多表查询的问题 ORACLE下用一张表的一个字段去更新另一张表的一个字段 触发器没起作用的问题 求个sql优化语句 求助一条两表关联UPDATE语句 初学oracle的困惑 急急急:ora-00600错误如何处理 1000分寻一份数据库开发文档范例,现场给!!急 怎么锁定一个表的读或者读写? oracle8i中怎样建立对一个用户的而不是一张表的snapshot? 关于分批删除记录的方法 关于数据比较判断的问题?十万火急!!
---------- ----------
18 3000
17 3200
18 2500
19 3000
21 3100
18 3100
21 3000
19 3500
18 2800
20 300010 rows selectedSQL>
SQL> SELECT '-1' || MAX(age) keep(DENSE_RANK LAST ORDER BY age_cnt) age_max,
2 '-1' || MAX(sal) keep(DENSE_RANK LAST ORDER BY sal_cnt) sal_max
3 FROM (SELECT t.*,
4 COUNT(*) over(PARTITION BY age) age_cnt,
5 COUNT(*) over(PARTITION BY sal) sal_cnt
6 FROM test t)
7 /AGE_MAX SAL_MAX
------------------------------------------ ------------------------------------------
-118 -13000
lz自己baidu一下吧