V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  madworks  ›  全部回复第 1 页 / 共 5 页
回复总数  83
1  2  3  4  5  
ui 看着太丑了
坐标哪里,我想去锻炼锻炼
@TraceurMW 没加 requestbody 肯定不起效啊
2020-12-21 18:01:42 +08:00
回复了 samun 创建的主题 程序员 请教各位老哥一个问题 如何避免扯皮
@zjb861107 服务器能挖几个矿?看显卡的
2020-12-15 17:46:31 +08:00
回复了 jerry12417 创建的主题 MySQL 求推荐 MySQL 进阶讲解书籍
Effective MySQL 和高可用 mysql
2020-12-15 17:35:39 +08:00
回复了 scr 创建的主题 程序员 一顿规划猛如虎, 上线一看
@ieiayaobb 除了 steam 别的哪家公司满足
oracle jdk6 最高版本是 45,哪来的 113,jdk7 最高 80,jdk8 目前是 261,你看错了版本或者用的不是 sun 的 jdk
2020-11-12 09:58:30 +08:00
回复了 madworks 创建的主题 Java 如何高效的同时处理本月排名和上月排名
要求不要用 redis
@tianyu94 用的 jwt 方式
@w292614191 不起效,问一下相关代码在哪
@jinhan13789991 what ?哥你在逗我
2020-11-02 16:15:09 +08:00
回复了 madworks 创建的主题 Java 报表分组通用 sql 解决方案已出
删除节点统计的代码
public void deleteNodeTotal(List<OrderInfo> orderInfoList, int len,
Map<String, Object> rowGroupMap, String[] rowParamArr, int levelFlag, List<List<Integer>> nestOrderInfoIndexCollection, List<List<Integer>> nestOrderInfoRepeatCollection)
{

List<List<Integer>> groupOrderInfoNumCollection = new ArrayList<List<Integer>>();
for (int i = 0; i < levelFlag; i++)
{
nestOrderInfoIndexCollection.add(new ArrayList<Integer>());
nestOrderInfoRepeatCollection.add(new ArrayList<Integer>());
groupOrderInfoNumCollection.add(new ArrayList<Integer>());
}

if (rowParamArr.length > 1)
{

getGroupOrderInfoNum(levelFlag, rowGroupMap, rowParamArr, groupOrderInfoNumCollection);

if (levelFlag >= 1)
{
getInsertPosition(levelFlag, groupOrderInfoNumCollection, orderInfoList, len, nestOrderInfoIndexCollection, nestOrderInfoRepeatCollection);
}
}

}
2020-11-02 16:14:26 +08:00
回复了 madworks 创建的主题 Java 报表分组通用 sql 解决方案已出
把结果集整理成需要的形式的代码
public void resultSetHandler(int rowLen, int levelFlag, Map<String, Object> map,
Map<String, Object> rowGroupMap, String[] rowParamArr,
List<List<OrderInfo>> nestOrderInfoCollection, int len, int i)
{
if (rowLen >= 1)
{
List<List<Integer>> temp = new ArrayList<>();
levelFlag--;
map.remove(rowParamArr[rowLen]);
rowGroupMap.remove(rowParamArr[rowLen]);
nestOrderInfoCollection.get(i).addAll(performanceService.getOrderInfo(map));
deleteNodeTotal(nestOrderInfoCollection.get(i), len, rowGroupMap, rowParamArr, levelFlag,temp,temp);
rowLen--;
i++;
resultSetHandler(rowLen, levelFlag, map, rowGroupMap, rowParamArr, nestOrderInfoCollection, len, i);
}
}
2020-11-02 16:10:32 +08:00
回复了 madworks 创建的主题 Java 报表分组通用 sql 解决方案已出
@zifangsky 随便给你看下插入小计的位置的代码
public void getInsertPosition(int levelFlag, List<List<Integer>> groupOrderInfoNumCollection,
List<OrderInfo> orderInfoList, int len, List<List<Integer>> nodeIndexList, List<List<Integer>> nestOrderInfoRepeatCollection)
{
int insertPos = 0;
int position = 0;
int[] listLen = new int[levelFlag];

if (levelFlag >= 1)
{
int[] index = new int[levelFlag];
for (int i = 0; i < levelFlag - 1; i++)
{
index[i] = groupOrderInfoNumCollection.get(i + 1).get(0);
}
for (Integer integer : groupOrderInfoNumCollection.get(0))
{
position += len * integer;
orderInfoList.remove(position);
insertPos += integer;
nodeIndexList.get(0).add(insertPos);
if(integer == 1){
nestOrderInfoRepeatCollection.get(0).add(insertPos);
}
for (int i = 0; i < levelFlag - 1; i++)
{
if (insertPos == index[i])
{
nodeIndexList.get(i + 1).add(insertPos);
orderInfoList.remove(insertPos * len);
listLen[i]++;
if (listLen[i] < groupOrderInfoNumCollection.get(i + 1).size())
{
index[i] += groupOrderInfoNumCollection.get(i + 1).get(listLen[i]);
}
}
}
}
if(orderInfoList.size() > 1){
orderInfoList.remove(orderInfoList.size() - 1);
}
}
}
2020-11-02 16:04:59 +08:00
回复了 madworks 创建的主题 Java 报表分组通用 sql 解决方案已出
@zifangsky 这 sql 只是看起来长,不复杂啊,修改的话就套模板,很快的。执行速度的话只要行列分组不超过 5 个都在 1 分钟之类,这种报表用逻辑代码写才是噩梦,我写出来要几百行代码,各种递归,小计总计还要判断位置,没写过想象不到的复杂
2020-11-02 14:43:32 +08:00
回复了 madworks 创建的主题 Java 报表分组通用 sql 解决方案已出
@wysnylc 太自信了
2020-11-02 14:25:54 +08:00
回复了 madworks 创建的主题 Java 报表分组通用 sql 解决方案已出
SELECT
row1,
row2,
IFNULL(column1, '总计'),
IFNULL(column2, '小计'),
sum(fee) fee
FROM
(
SELECT
row1,
row2,
column1,
column2,
fee
FROM
(
SELECT
*
FROM
(
SELECT
x.row1,
x.row2,
y.column1,
y.column2,
0 AS fee
FROM
(
SELECT
row1,
row2
FROM
xx_index
GROUP BY
row1,
row2
) x,
(
SELECT
column1,
column2
FROM
xx_index
GROUP BY
column1,
column2
) y
WHERE
(3 * y.column1 + y.column2) NOT IN (
SELECT
3 * m.column1 + m.column2
FROM
xx m
WHERE
m.row1 = x.row1
AND m.row2 = x.row2
)
GROUP BY
row1,
row2,
column1,
column2
) n
UNION
SELECT
row1,
row2,
column1,
column2,
sum(fee) fee
FROM
xx
GROUP BY
row1,
row2,
column1,
column2
) temp
GROUP BY
row1,
row2,
column1,
column2
) AS temp
GROUP BY
row1,
row2,
column1,
column2 WITH ROLLUP
2020-11-02 13:53:14 +08:00
回复了 madworks 创建的主题 Java 报表分组通用 sql 解决方案已出
@l00t 哈哈,是这样的,多谢
2020-11-02 11:17:47 +08:00
回复了 madworks 创建的主题 Java 报表分组通用 sql 解决方案已出
@weizhen199 @zoharSoul 你们说的好像是一个,我了解下,我以为你说的 bi pivot
1  2  3  4  5  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   993 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 22ms · UTC 21:40 · PVG 05:40 · LAX 13:40 · JFK 16:40
Developed with CodeLauncher
♥ Do have faith in what you're doing.