我正在学习 Go,在课程中我遇到了一个问题,即函数看不到正在传递的参数。
我对其进行了简化并将其移至单独的项目,但错误仍然存在。
错误undeclared name: servProd
项目结构
test
├─ go.mod
├─ internal
│ └─ handler
│ ├─ opkg.go
│ └─ pl.go
└─ main.go
不知道怎么排列页面上的元素,让tabBox在box下面(文件上传),table占据了右边的所有空间
编码
fluidRow(
box(width = 3,
fileInput(NS(id,"file"), "Загрузить файл",
buttonLabel = 'Загрузить', placeholder = 'Файл не выбран')),
box(width = 9,dataTableOutput(NS(id,'outTable'))),
tabBox(width = 3,
tabPanel('column',
useShinyjs(),
hidden(checkboxGroupInput(NS(id,"select_column"),'Колонки', choices = ''))),
tabPanel('drop',h2('drop value in table'))
)
)
ORA - 12560
当我尝试连接到安装在 VM 上的 Oracle DB 时出现错误。
sql*plus, pl/sql, excel - 连接成功
R 中的连接代码:
con <- dbConnect(odbc::odbc(), driver ='Oracle in instantclient_19_14',
dns = "user", encoding = "windows-1251",PWD ="qazedcwsx")
#--- output Error: nanodbc/nanodbc.cpp:1021: IM006: [Oracle][ODBC][Ora]ORA-12560: TNS:protocol adapter error
sql*plus 我只有在密码后面写才能连接
@sid
,这种方法在 R 中不起作用
这里有张桌子
DF <- tibble(
CLIENT = c(1,1,1,2,2,2,3,3,3),
N_DOG = c('N1','N2','N3','N4','N5','N6','N7','N8','N9'),
DT = as.Date(c('01.06.2021','12.07.2021','04.05.2021',
'03.08.2021','21.07.2021','04.01.2022',
'07.04.2021','09.11.2021','08.12.2021'), format = '%d.%m.%Y'),
RANK = c(1,1,2,3,1,1,2,2,3)
)
客户 | N_DOG | DT | 秩 |
---|---|---|---|
一 | N1 | 2021-06-01 | 一 |
一 | N2 | 2021-07-12 | 一 |
一 | N3 | 2021-05-04 | 2 |
2 | N4 | 2021-08-03 | 3 |
2 | N5 | 2021-07-21 | 一 |
2 | N6 | 2022-01-04 | 一 |
3 | N7 | 2021-04-07 | 2 |
3 | N8 | 2021-11-09 | 2 |
3 | N9 | 2021-12-08 | 3 |
您需要根据以下标准为每个客户找到一份合同:
- 查找具有最低等级的合同
- 如果有多个这样的合同,我们选择最后一个。
PS。根据上述条件,输出必须是唯一的客户和 1 个合约
执行
MIN_RANK <- DF %>%
select(CLIENT, RANK) %>%
group_by(CLIENT) %>%
filter(RANK == min(RANK)) %>%
ungroup() %>%
distinct()
MIN_RANK %>%
inner_join(DF, by = c('CLIENT','RANK')) %>%
select(!c(N_DOG,RANK)) %>%
group_by(CLIENT) %>%
filter(DT == max(DT)) %>%
inner_join(DF, by = c('CLIENT','DT'))
决赛
客户 | DT | N_DOG | 秩 |
---|---|---|---|
一 | 2021-07-12 | N2 | 一 |
2 | 2022-01-04 | N6 | 一 |
3 | 2021-11-09 | N8 | 2 |
怎样才能更快地完成这个动作?[可能已经有写功能]
论坛上有一个类似的SQL
人们渴望寻找一种新的编程语言。我与数据打交道,我主要使用 SQL 和 R
选择一门新语言时,我首先看的是 Python。
但是,有 R 可用,我不完全理解 Python 可以提供哪些优势。
我对 Python 唯一感兴趣的是解析(作为获取数据的额外机会)。
我正在寻找一种语言,它将作为现有 SQL + R 包的补充。
您建议看哪些语言?
使用该功能时,bind_cols
我在控制台中收到一条消息,指出某些列已被重命名。
如何禁用到控制台的输出新名称:...?
尝试禁用警告消息 -
options(warn = -1)
但它没有给出任何结果。
有一张表,你需要复制一份,但是改变一列的数据类型:
需要:
复制时需要保存数据。列中的数据以phone
以下格式写入 - 34252345
。
我知道这种输入数据的可能性:
insert into new_table
select * from old_table
但是如何转换数据类型呢?
表中有超过300万条记录,所以卸载它并上传到新的会出现问题。
有2张桌子
--Результат подзапроса (отфильтрованных клиентов)
create table fq (idclient, idblank, datenter) as
select 1, 1, date'2021-06-03'+0.5 from dual union all
select 5, 4, date'2021-03-13'+0.5 from dual union all
select 2, 1, date'2021-04-03'+0.5 from dual
--Вся таблица
create table t (idclient, idblank, datenter) as
select 5, 13, date'2021-01-14'+0.5 from dual union all
select 1, 1, date'2021-06-03'+0.5 from dual union all
select 1, 5, date'2021-02-13'+0.5 from dual union all
select 2, 14, date'2021-06-03'+0.5 from dual union all
select 3, 12, date'2021-02-17'+0.5 from dual union all
select 4, 9, date'2021-04-03'+0.5 from dual union all
select 5, 6, date'2021-01-12'+0.5 from dual union all
select 6, 7, date'2021-04-03'+0.5 from dual union all
select 5, 4, date'2021-03-13'+0.5 from dual union all
select 3, 3, date'2021-04-03'+0.5 from dual union all
select 4, 2, date'2021-02-13'+0.5 from dual union all
select 2, 1, date'2021-04-03'+0.5 from dual union all
select 1, 10, date'2021-05-25'+0.5 from dual
Суть задачи
- 查明客户档案是否在 3 个月前创建。
Важно
- 查看问卷建立之日起 3 个月前(针对每个客户)。
此外,该表fq
是子查询的结果,因此在表中搜索时,t
不能考虑重复的配置文件。
我试图用以下逻辑解决:
fq
t
以按其搜索select t2.idclient, case when t1.idblank is not null then 1 end as priz_m3
,t1.datenter
from (select
idclient, idblank, datenter
from t ) t1
left join (select
t.idclient, max(t.datenter) as datenter
from t join fq on t.idclient=fq.idclient
group by t.idclient
) t2 on t1.idclient=t2.idclient
and t2.datenter between add_months(t1.datenter,-3) and t1.datenter-1
预期结果
IDCLIENT PRIZ_M3 DATENTER
1 1 25-MAY-21
2 NULL NULL
5 1 14-JAN-21
5 1 12-JAN-21
事实上db<>fiddle
这里有张桌子:
有必要找到客户拒绝的订单,其日期最多落后于前一个订单1天。
例如:Date_time
=今天,你需要找到今天和昨天。如果有这样的订单被拒绝,那么您需要为此客户显示已批准的订单。
在这个任务中,我很难理解每天一步搜索2个订单的逻辑,一个客户可以有5个以上的订单,这些订单的日期必须相互比较。
如何实施?
您需要t1
使用来自 的值更新表值t2
。两个表都有id
并且只需要两个表中的那些。
我尝试使用以下查询来做到这一点:
update t1 set (t1.n_dog) = (
select t2.n_dog
from t2
join t1 on t1.idblank=t2.idblank);
我得到错误:
ORA-01427: 单行子查询返回多于一行
搜索这个网站,我发现了一个类似的主题。
并且有一个解决方案:
UPDATE DISHES d SET (d.price, d.calories) = ( SELECT dc.price, dc.calories
FROM DISH_PRICE_CALORIES dc
WHERE d.id = dc.dish_id );
在我看来,情况相似,但只有我有一个专栏。
为什么我会收到此错误?
面临这样的问题
有 2 个标签product和pdate
pdate表有2 个字段 [ start, update ]
在表产品中- 有一个字段 [类型]
任务的本质:
我的想法和我的尝试。
我对sql的经验很少,我尝试将所有带有条件的行(其中有3行)都写在下select
,然后随着第3行的进行,count
前2行进入第group by
3步,但是前2行的数据需要步骤。后来才知道count
类似的功能是不能拉取数据的,group by
看了几篇文章才知道有嵌套查询这样的问题,但也没有得到想要的结果。
select
y.result
from (select
nvl(tda.start,tda.update) as fresh_date
,case where tpo.type = '21' there add_mothe(to_date(sysdate),-1) end
as product_date
,count(case where res > fdate there 1 else null end) result
from pdate as tda inner join product as tpo on tda.id=tpo.id
group by nvl(tda.start,tda.update),
case where tpo.type = '21' there add_mothe(to_date(sysdate),-1) end
)y;
还有 3 个嵌套的。
select
y.result
from (select
nvl(tda.start,tda.update) as fresh_date
,case where tpo.type = '21' there add_mothe(to_date(sysdate),-1) end
as product_date
,(select count(case where res > fdate there 1 else null end)
from pdate as tda inner join product as tpo on tda.id=tpo.id ) result
from pdate as tda inner join product as tpo on tda.id=tpo.id
group by nvl(tda.start,tda.update),
case where tpo.type = '21' there add_mothe(to_date(sysdate),-1) end
)y;
尝试了不同的东西,但没有结果
面临这样的问题。示例,表格列:
有必要计算列中 1 的数量,然后将该值除以列的总和,不考虑计数的 1(单位)。
有关于如何用 2 个程序做到这一点的想法,但是如何在一个程序中做到这一点?