package com.anna.hive.util;
public class ConvertUtil {
/**
* 统计分析函数的计算 sum count avg
* @param database 数据库名称
* @param table 要操作的表的名称
* @param columns 结果列
* @param column 计算列 ——> 也可以是数组
* @param type 计算功能:sum / average /count
* @return 翻译后的SQL
* */
public String SAC(String database, String table, String[] columns, String column, String type) {
String cls = "";
for (String c : columns) {
cls += c + ",";
}
String sql = "select " + cls + type + "(" + column + ")" + " from " + database + "." + table + " group by " + cls.substring(0,cls.length() - 1);
return sql;
}
/**
* 获得指定数据表的前n条数据 limit
* @param database 数据库名称
* @param table 数据表
* @param columns 要获取的列
* @param n 要获取的记录数
* @return 翻译后的SQL
* */
public String getTableDataByN(String database, String table, String[] columns, int n) {
String cls = "";
for (String c : columns) {
cls += c + ",";
}
cls = cls.substring(0, cls.length() - 1);
String sql = "select " + cls + " from " + database + "." + table + " limit " + n;
return sql;
}
/**
* 获得指定数据表的前百分之n的数据 tablesample
* @param database 数据库
* @param table 数据库表
* @param columns 待查询的列
* @param percent 百分比
* @return 翻译后的SQL
* */
public String getDataByNPercent(String database, String table, String[] columns, double percent) {
String cls = "";
for (String s : columns) {
cls += s + ",";
}
cls = cls.substring(0, cls.length() - 1);
String sql = "select " + cls + " from " + database + "." + table + " tablesample(" + percent + " percent)";
return sql;
}
/**
* 随机抽样 rand()
* @param database 数据库名称
* @param table 数据表名称
* @param columns 待查询返回的列
* @param n 要获取多少一条记录数
* @return 翻译后的SQL
* */
public String getRandomDataN(String database, String table, String[] columns, int n) {
String cls = "";
for (String c : columns) {
cls += c + ",";
}
String sql = "select " + cls + "rand() r from " + database + "." + table + " order by r limit " + n;
return sql;
}
/**
* 条件查询
* @param database 数据库名称
* @param table 数据表名称
* @param columns 条件列名
* @param conditions 条件
* @param values 条件值
* @return 翻译后的SQL
* */
public String getDataByCondition(String database, String table, String[] columns, String[] conditions, String[] values) {
String c = "";
for (int i = 0; i < columns.length; i++) {
c += " and " + columns[i] + " " + conditions[i] + " " + values[i];
}
String sql = "select * from " + database + "." + table + "where 1 = 1 " +c;
return sql;
}
}
ConvertUtil
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...