一道sql面试题统计人数>1的记录id

缘起

朋友面试, 问我面到的题目, 哎,每次sql的问题, 其实想吧想吧都能答出来,但是如果要求你短时间,特别是面试官就站在你对面的话, 还真有点压力.

题目: 如下一张表 T_PUB_MEMBER

PUB_ID JOB_TITLE
1 采集人员
3 财务人员
1 采集人员
2 采集人员

要统计这张表中JOB_TITLE为采集人员的数量>1的PUB_ID

分析

sql题一般都是逐步写出答案的.

  1. 1
    SELECT PUB_ID AS id FROM T_PUB_MEMBER WHERE JOB_TITLE='采集人员' ORDER BY JOB_TITLE

    得到所有JOB_TITLE为采集人员的ID列表. 将此表记做c

  2. 1
    SELECT c.id FROM c GROUP BY c.id HAVING COUNT(1)>1

    得到答案

综上,答案是

1
2
SELECT c.id FROM
(SELECT PUB_ID AS id FROM T_PUB_MEMBER WHERE JOB_TITLE='采集人员' ORDER BY JOB_TITLE) c GROUP BY c.id HAVING COUNT(1)>1

win10 java客户端连接hdfs集群报 java.io.Exception: Could not locate executable null/bin/winutils.exe in the Hadoop binaries

缘起

小白继续入门. 使用java客户端连接hdfs集群, 本地环境是win10 Home Basic.搭建好hadoop集群, 配置好HADOOP_HOME环境变量.以及PATH环境变量.

1
2
3
4
5
6
7
@Test
public void upload() throws Exception {
Configuration configuration = new Configuration();
FileSystem fs = FileSystem.get(new URI("hdfs://hadoop01:9000"), configuration, "root");
fs.copyFromLocalFile(new Path("e:/hello.txt"), new Path("/hello.txt"));
fs.close();
}

其中hadoop01是hdfs的namenode所在节点. 运行之后报错

1
java.io.Exception: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.

Read More

gradle build和gradlew build的区别

接之前写的一篇小文《gradle项目开发环境搭建》, 我们观察一下gradle项目中的文件

其中我们看到了gradlew 和 gradlew.bat 文件, 有点经验的人都知道, 前者是linux上用的, 后者是Windows下用的, 但从作用上来讲, 两者没有本质区别. 那么接上一文的疑问, gradlew 的作用是什么呢? 它和gradle命令有什么区别?

Read More

oracle转postgresql时,使用jpa(hibernate)报错: 不良的类型值 long

缘起

近日, 公司要和第三方对接, 而第三方不能和我方标准接口对接, 因此只能我方定时从他们的数据库中拉取数据, 然后调用我方标准接口将数据推送到我方服务器中去. 即要实现一个中间层的功能.

这个功能的实现思路是极为简单的, 就是写一个定时任务去第三方的数据库中拉取数据就是. 而且公司原本就有定时任务的代码, 可以copy. 但是公司的数据库是oracle的, 而第三方是pg数据库, 本想都是关系型的,最多数据类型有点不一致, 微调一下就行了, 结果在使用springboot+jpa读取第三方的pg数据库的时候报错

1
org.postgresql.util.PSQLException: 不良的类型值 long : \xffd8...

Read More