尘世随缘 发表于 2015-4-5 20:37 改成这种形式
|
select count(userid) as typecount,userid,optype from op_log group where opData>时间 and opData<时间 by userid,optype 这样的写法是否可行呢?或则是否还有其他号的办法? |
我希望得到的结果是: userid optype typeCount 1 2 34 1 3 56 23 1 10 23 2 25 25 4 40 请问这样的结果SQL如何写? |
尘世随缘 发表于 2015-4-5 14:54
试试上面的,记得把放到一行 |
谢谢,关键是我对这些SQL不熟悉,希望能给点建议。最好能按照此需求写个例子。谢谢!!! 现在的想法是: select count(1),userid from op_log where opData>时间 and opData<时间 group by userid,opType |
本帖最后由 arsenduan 于 2015-4-5 14:47 编辑 尘世随缘 发表于 2015-4-5 14:34 hive 有group by,可以多了解下hive的语法。下面是语法格式: SELECT [ALL | DISTINCT] select_expr, select_expr, ... FROM table_reference [WHERE where_condition] [GROUP BY col_list [HAVING condition]] [ CLUSTER BY col_list | [DISTRIBUTE BY col_list] [SORT BY| ORDER BY col_list] 只要知道的语法,无论是union,还是group by,还是其它,都可以使用,看楼主想用什么方法使用 Hadoop Hive sql语法详解1-认识hive及DDL操作 Hadoop Hive sql语法详解2-修改表结构 Hadoop Hive sql语法详解3--DML 操作:元数据存储 Hadoop Hive sql语法详解4--DQL 操作:数据查询SQL Hadoop Hive sql语法详解5--HiveQL与SQL区别 |
如果这样查询的话,感觉hive就没什么意义了。如果用group by 之类的,应该怎么用。 |
hive跟其它sql语法大同小异。 使用union可以把这些结果组合起来 UNION ALL •用来合并多个select的查询结果,需要保证select中字段须一致 •select_statement UNION ALL select_statement UNION ALL select_statement ... |