美文网首页
一道滴滴面试题

一道滴滴面试题

作者: LI木水 | 来源:发表于2018-09-30 13:25 被阅读0次

有一张表table只有一列,统计出现次数大于2的行

name
b
a
c
c
c
b
d
d
d
a
c
c
c
a

1.请使用sql实现

select name,count(1) as num from table group by name having num>2;

解答:

首先需要分组,对分组结果进行过滤需要使用having关键字

2,假如这是一个文本文件test.txt,请使用Linux命令实现同样功能

sort test.txt |uniq -c|sort -nr |awk '$1>2'

解答:

首先需要对文件排序使相同的行聚合在一起

sort test.txt 
a
a
a 
b
b 
c
c
c
c
c
c
d
d
d

使用uniq -c命令统计每行出现的次数

sort test.txt |uniq -c
    3 a
    2 b
    6 c
    3 d

使用awk过滤出现次数大于2的行

sort test.txt |uniq -c|awk '$1>2'

      3 a
      6 c
      3 d

对结果进行排序:-n排序,-r反转排序结果

sort test.txt |uniq -c|awk '$1>2'|sort -nr
      6 c
      3 d
      3 a

3.输出出现次数大于2小于5的行

sort test.txt |uniq -c|sort -nr |awk '$1>2 && $1<=5'

4.假如有100w行,输出出现次数最多的前100行

sort test.txt |uniq -c|sort -nr |awk '$1>2' |head -100

参考:

http://man.linuxde.net/sort

http://man.linuxde.net/uniq

http://man.linuxde.net/awk

http://man.linuxde.net/head

相关文章

  • 一道滴滴面试题

    有一张表table只有一列,统计出现次数大于2的行 1.请使用sql实现 解答: 2,假如这是一个文本文件test...

  • 滴滴一道SQL面试题

    有三个表,分别是区域(district),城市(city)和订单(order)。区域中有两个字段分别是区域ID(d...

  • 关于class superClass super

    下面一道面试题:@implementation Son : Father 很多iOS面试题库中都有这一道面试题,上...

  • 2016-10-14

    一道面试题

  • 从一道网易面试题浅谈OC线程安全

    从一道网易面试题浅谈OC线程安全 从一道网易面试题浅谈OC线程安全

  • iOS一道复合型面试题与底层原理

    iOS一道复合型面试题与底层原理iOS一道复合型面试题与底层原理

  • 工作面试

    2016 年末,腾讯,百度,华为,搜狗和滴滴面试题汇总 2016 年未,腾讯,百度,华为,搜狗和滴滴面试题汇总杭州...

  • Android-Java面试

    2016 年末,腾讯,百度,华为,搜狗和滴滴面试题汇总 2016 年未,腾讯,百度,华为,搜狗和滴滴面试题汇总各大...

  • 优秀开源

    2016 年末,腾讯,百度,华为,搜狗和滴滴面试题汇总 2016 年未,腾讯,百度,华为,搜狗和滴滴面试题汇总自定...

  • 程序语言

    2016 年末,腾讯,百度,华为,搜狗和滴滴面试题汇总 2016 年未,腾讯,百度,华为,搜狗和滴滴面试题汇总【码...

网友评论

      本文标题:一道滴滴面试题

      本文链接:https://www.haomeiwen.com/subject/xykwoftx.html