是否有函数或方法可以在 Google Big Query SQL 中执行 LEAD & LAG 来预测新客户、回头客和流失客户?
我的桌子
Order_ID | Date_Start | Date_End |
001 | 2020-1-1 | 2020-2-1 |
001 | 2020-2-1 | 2020-3-1 |
001 | 2020-3-1 | 2020-4-1 |
Run Code Online (Sandbox Code Playgroud)
预期输出:
Order_ID | Date_Start | Date_End | Churn_Status
001 | 2020-1-1 | 2020-2-1 | New Customer
001 | 2020-2-1 | 2020-3-1 | Recurring
001 | 2020-3-1 | 2020-4-1 | Churned
Run Code Online (Sandbox Code Playgroud)
谢谢。任何帮助你都是有用的。
因此,我构建了一个登录屏幕,但该页面的启动时间很糟糕!在查看文档后,我发现了一个名为Shader Jank Complation 的东西,我发现文档令人困惑,但决定实现那里给出的内容。
完成这些步骤后,我运行了该应用程序,性能显着提高。但是,我不知道后台发生了什么以及文档实际指向什么。
我也不明白代码出了什么问题,并且应用程序没有按预期执行或无缘无故地滞后。
登录屏幕:
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:regexed_validator/regexed_validator.dart';
import '../constants/buttons.dart';
import '../constants/colors.dart';
import '../constants/text_style.dart';
class LoginPage extends StatefulWidget {
const LoginPage({super.key});
@override
State<LoginPage> createState() => _LoginPageState();
}
class _LoginPageState extends State<LoginPage> {
String email = "";
String password = "";
final formKey = GlobalKey<FormState>();
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.white,
body: SafeArea(
child: …Run Code Online (Sandbox Code Playgroud) 我第一次在这里问一个问题,如果我做错了,请纠正我.
我国际象棋的图片:http: //img842.imageshack.us/img842/2695/65744343.png
每次我移动一块它都会滞后大约1秒钟.每件和瓷砖都有一个图像,正好有96个图像.每次我移动一块它都会用黑色清除所有内容,然后更新图形.
在国际象棋的早期阶段,我没有任何图像,而是使用了不同的颜色,只有几件没有明显的滞后,这件作品瞬间移动.
public void updateGraphics(PaintEventArgs e, Graphics g, Bitmap frame)
{
g = Graphics.FromImage(frame);
g.Clear(Color.Black);
colorMap(g);
g.Dispose();
e.Graphics.DrawImageUnscaled(frame, 0, 0);
}
Run Code Online (Sandbox Code Playgroud)
函数colorMap(g)看起来像这样:
private void colorMap(Graphics g)
{
for (int y = 0; y < SomeInts.amount; y++)
{
for (int x = 0; x < SomeInts.amount; x++)
{
//Tiles
Bundle.tile[x, y].colorBody(g, x, y);
//Pieces
player1.colorAll(g);
player2.colorAll(g);
}
}
}
Run Code Online (Sandbox Code Playgroud)
colorAll函数执行每个colorBody(g)函数,如下所示:
public void colorBody(Graphics g)
{
//base.colorBody() does the following: body = new Rectangle(x * SomeInts.size + …Run Code Online (Sandbox Code Playgroud) SELECT
b.User_Id
,(CONVERT(varchar, DATEADD(hh, - 7, b.callstartdt), 101))as 'Dt'
,(COUNT(distinct b.SeqNum ) + Count(distinct c.SeqNum) + count(distinct d.seqnum)) as 'TotalCalls'
,COUNT(distinct b.SeqNum )as 'ACD'
,COUNT(distinct c.SeqNum)as 'AOD'
,COUNT(distinct d.seqnum) as 'Manual'
,COUNT(distinct e.SeqNum)as 'Contacts'
,COUNT (distinct es.seqnum) as 'Success'
FROM
[detail_epro].[dbo].[ACDCallDetail]as b
LEFT JOIN
[detail_epro].[dbo].[AODCallDetail]as c on c.User_Id = b.User_Id
LEFT JOIN
[detail_epro].[dbo].[manualCallDetail]as d on d.User_Id = b.User_Id
LEFT JOIN
(SELECT
USER_ID, CallStartDt, SeqNum
FROM
[detail_epro].[dbo].[AgentDispoDetail]
WHERE
Disp_Id IN
(100000150, 100000126, 100000137, 100000093, 100000133,
100000123, 100000094, 100000161, 100000162, 100000085,
100000084, …Run Code Online (Sandbox Code Playgroud) 我很难带领或滞后于整个数据帧。我能做的是通过以下尝试来移动单个列,但不能进行全部操作:
require('DataCombine')
df_l <- slide(df, Var = var1, slideBy = -1)
Run Code Online (Sandbox Code Playgroud)
使用colnames(x_ret_mon)作为Var不起作用,我被告知在数据框中找不到变量名。
这种尝试将列向右移而不是向下移:
df_l<- dplyr::lag(df)
Run Code Online (Sandbox Code Playgroud)
这只会为滞后变量创建新变量,但是我不知道如何有效删除旧的非滞后值:
df_l<-shift(df, n=1L, fill=NA, type=c("lead"), give.names=FALSE)
Run Code Online (Sandbox Code Playgroud) 所以我面临一个问题
重新加载/添加行几次后,表视图变慢(滚动、点击响应变慢)
所以在用户登录后,应用程序会下载 10 个"WorldMessages"。它被加载到这个表视图中。
如果用户向下滚动,它会调用一个加载更多 10 的函数: loadOlderOwnWorldMessages()
每个单元格都有一个tapGestureRecognizer+longPressGestureRecognizer
而且我不得不提一下,如果用户重新加载 tableView,那么它会清除数据并再次加载前 10 个 WorldMessages
问题
我不知道为什么,但是例如,如果我重新加载 tableView 50 次并且每次向下滚动一点或更多,那么 tableView 就会变慢。
也许是因为点击/长按手势识别器或限制?
该应用程序如下所示:
卡顿后的视频:
https://www.youtube.com/watch?v=65NkjS-Kz3M
(如果我杀死应用程序并再次打开它,那么它会再次顺利运行,直到我重新加载它几次)
代码:
// 这不是整个代码,我删除了很多不重要的行(如重新加载函数等)
class ProfileViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, UITabBarDelegate {
// Classes
let handleData = HandleData()
let handleResponses = HandleResponses()
let worldMessagesFunctions = WorldMessagesFunctions()
let profileFunctions = ProfileFunctions()
// View Objects
@IBOutlet var tableView : UITableView!
// Variables
var userWorldMessages = [WorldMessage]()
var lastContentOffsetY : CGFloat?
var currentSelectedWorldMessageIndexPath …Run Code Online (Sandbox Code Playgroud) 我在 React-Native 中开发了一个应用程序,并在 StackNavigator 的标题下有一个动画元素。在这个动画元素下,我有一个 FlatList,其中包含一些 Json 数据。
所以我的问题是,动画在 Xcode 的 iPhone 模拟器中很流畅,但在我的实际设备 OnePlus 6T 上却不流畅。
安装程序被弹出 Expo Project,这是我的代码:
export const window = Dimensions.get("window");
export const MAX_HEADER_HEIGHT = window.width / 5;
export const MIN_HEADER_HEIGHT = window.width / 1000;
export const MAX_BORDER_RADIUS = 450;
export const MIN_BORDER_RADIUS = -450;
Run Code Online (Sandbox Code Playgroud)
主屏.js
this.state = {
scrollY: new Animated.Value(0)
};
render() {
const { scrollY } = this.state;
const headerHeight = scrollY.interpolate({
inputRange: [0, MAX_HEADER_HEIGHT],
outputRange: [MAX_HEADER_HEIGHT, MIN_HEADER_HEIGHT],
extrapolate: "clamp"
});
const borderRadius = …Run Code Online (Sandbox Code Playgroud) 我想计算数据库中每个客户的每月订单累计金额。
例如,我有这样的数据:
| 顾客 | 年 | 月 | 无订单 |
|---|---|---|---|
| 第1544章 | 2022年 | 4 | 5 |
| 第1544章 | 2022年 | 4 | 1 |
| 第1544章 | 2022年 | 12 | 1 |
| 第1544章 | 2023年 | 1 | 3 |
结果应该与下面相同:
| 顾客 | 年 | 月 | 累计无订单数 |
|---|---|---|---|
| 第1544章 | 2022年 | 4 | 0 |
| 第1544章 | 2022年 | 12 | 6 |
| 第1544章 | 2023年 | 1 | 7 |
我lag()在下一步中使用了 and ,sum() over ()但我的结果是错误的!
我怎么解决这个问题?
如果当前CLUSTERn =上一个CLUSTERn,然后将上一个PRODCAT作为PREVCAT添加到当前行,那么我的case语句出了什么问题,我将不胜感激。
ORA-30484: missing window specification for this function
30484. 00000 - "missing window specification for this function"
*Cause: All window functions should be followed by window specification,
like <function>(<argument list>) OVER (<window specification>)
*Action:
Error at Line: 11 Column: 30
Run Code Online (Sandbox Code Playgroud)
SELECT CLUSTERn,
MEMBERn,
COUNT(*) OVER ( PARTITION BY CLUSTERn ORDER BY MEMBERn, PRODCAT, STARTd, ENDd ) AS NEWRANK,
CASE WHEN CLUSTERn = LAG(CLUSTERn) THEN LAG(PRODCAT) ELSE 'New' END AS PREVCAT,
STATUS,
PRODCAT,
JOINTYPE,
JOINRANK,
CSP,
PROGID,
PROMNAME,
PROMOID,
COHORT, …Run Code Online (Sandbox Code Playgroud)