我只需要在表中存在列时选择一个列,否则可以设置为null.
下面的示例表,可以说markscol不是必需的,因此需要检查它是否存在
表1:
name marks
joe 10
john 11
mary 13
Run Code Online (Sandbox Code Playgroud)
查询:
select
name,
marks if it exists else null as marks1 -- pseudo code
from
table1
Run Code Online (Sandbox Code Playgroud)
应该选择marks什么?
MongoDb不支持带点的键.我有一个Ruby嵌套哈希,它有许多带点(.)字符的键.在将此类数据插入MongoDb时,是否存在可用于指定.类似下划线的字符替换的_配置
我正在使用带Ruby和mongogem的MongoDB .
示例哈希如下所示
{
"key.1" => {
"second.key" => {
"third.key" => "val"
}
}
}
Run Code Online (Sandbox Code Playgroud) 使用数据框,我使用dplyr来聚合某些列,如下所示.
> data <- data.frame(a=rep(1:2,3), b=c(6:11))
> data
a b
1 1 6
2 2 7
3 1 8
4 2 9
5 1 10
6 2 11
> data %>% group_by(a) %>% summarize(tot=sum(b))
# A tibble: 2 x 2
a tot
<int> <int>
1 1 24
2 2 27
Run Code Online (Sandbox Code Playgroud)
太棒了.但是我想为此创建一个可重用的函数,以便可以将列名作为参数传递.
看看这里的相关问题的答案,我尝试了以下内容.
sumByColumn <- function(df, colName) {
df %>%
group_by(a) %>%
summarize(tot=sum(colName))
df
}
Run Code Online (Sandbox Code Playgroud)
但是我无法让它工作.
> sumByColumn(data, "b")
Error in summarise_impl(.data, dots) :
Evaluation error: invalid 'type' (character) …Run Code Online (Sandbox Code Playgroud) 像下面这样的 json,它是最外层的对象数组,还有进一步嵌套的对象数组。
data = [{"a": [{"a1": [{"id0": [{"aa": [{"aaa": 97}, {"aab": "one"}], "ab": [{"aba": 97}, {"abb": ["one", "two"]}]}]}, {"id1": [{"aa": [{"aaa": 23}]}]}]}, {"a2": []}]}, {"b": [{"b1": [{"Common": [{"bb": [{"value": 4}]}]}]}]}]
Run Code Online (Sandbox Code Playgroud)
我需要将其写入 csv(或 .xlsx 文件)
到目前为止我尝试过什么?
data_file = open('data_file.csv', 'w')
csv_writer = csv.writer(data_file)
for row in data:
csv_writer.writerow(row)
data_file.close()
Run Code Online (Sandbox Code Playgroud)
这给出了一个空文件“data_file.csv”。
另外我如何将标题添加到 CSV。我将标题存储在列表中,如下所示
hdrs = ['Section', 'Subsection', 'pId', 'Group', 'Parameter', 'Value']
Run Code Online (Sandbox Code Playgroud)
- 这对应于五个级别的键
预期的 CSV 输出
+---------+------------+--------+-------+-----------+----------+
| Section | Subsection | pId | Group | Parameter | Value |
+---------+------------+--------+-------+-----------+----------+
| …Run Code Online (Sandbox Code Playgroud) 我VARCHAR在Netteza中存储了一个位图.需要将其转换VARCHAR为Netezza中的二进制字符串.
输入(Netezza col值 - VARCHAR)='0xFFFFFFFFFFFFFFFF'
期望的输出(VARCHAR) - >
'1111111111111111111111111111111111111111111111111111111111111111'
Run Code Online (Sandbox Code Playgroud)
有没有办法使用Netezza查询?
我试过了
SELECT CAST('0xFFFFFFFFFFFFFFFF' AS VARBINARY(64) );
Run Code Online (Sandbox Code Playgroud)
但是这会引发错误
错误[HY000]错误:无法将"VARCHAR"类型强制转换为"VARBINARY"
使用 JavaScript 从 RGB 颜色创建颜色的首选方法是什么,以便可以将它们用于以 CSS 颜色的形式设置元素样式,如下所示。
document.getElementById("some_id").style.color = "some_value"
Run Code Online (Sandbox Code Playgroud)
下面的例子:
const colorsCbfRainbowRGB = {
violet: [120,28,129],
indigo: [64,67,153],
blue: [72,139,194],
green: [107,178,140],
olive: [159,190,87],
yellow: [210,179,63],
orange: [231,126,49],
red: [217,33,32]
}
Run Code Online (Sandbox Code Playgroud) 随着与领域文档的集合field1,field2,field3等等,我需要找到
field3field3,需要获取具有每个不同值的第一个文档field3对于#1,我可以做 db.myCollection.distinct("field3")
我怎么去#2?
样品采集:
[
{ "field1": 11, "field2": "toyota", "field3": "camry" },
{ "field1": 22, "field2": "toyota", "field3": "corolla" },
{ "field1": 33, "field2": "toyota", "field3": "camry" },
{ "field1": 44, "field2": "honda", "field3": "accord" },
{ "field1": 55, "field2": "honda", "field3": "accord" },
{ "field1": 66, "field2": "honda", "field3": "city" }
]
Run Code Online (Sandbox Code Playgroud)
想要的结果:
[
{ "field1": 11, "field2": "toyota", "field3": "camry" },
{ "field1": …Run Code Online (Sandbox Code Playgroud) 对于如下所示的数据框,我想使用 for 循环遍历每个数据框并添加一些新列 say new&new1到数据框d1和d2. 以下是我尝试过的。
d1 <- data.frame(y1 = c(1, 2, 3), y2 = c(4, 5, 6))
d2 <- data.frame(y1 = c(3, 2, 1), y2 = c(6, 5, 4))
my.list <- list(d1, d2)
for(df in my.list) {
df$new <- df$y1 + df$y2
df$new1 <- df$y1 - df$y2
}
Run Code Online (Sandbox Code Playgroud)
但是,当我查看原始数据框时d1,d2它们没有显示新的 col new。
> colnames(d1)
[1] "y1" "y2"
> colnames(d2)
[1] "y1" "y2"
Run Code Online (Sandbox Code Playgroud)
我如何获得有关获取添加到原始数据帧新的列d1和d2?
我使用mongogem 使用MongoDB和Ruby .
我有以下场景:
coll1,看看key1和key2coll2为其匹配值key1key2key3的值设置为key3#1中引用的文档中的值coll3MongoDB的一般准则是处理应用程序代码中的交叉收集操作.
所以我做了以下事情:
client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => some_db,
:server_selection_timeout => 5)
cursor = client[:coll1].find({}, { :projection => {:_id => 0} }) # exclude _id
cursor.each do |doc|
doc_coll2 = client[:coll2].find('$and' => [{:key1 => doc[:key1]}, {:key2 => doc[:key2] }]).limit(1).first # no find_one method
if(doc_coll2 && doc[:key3])
doc_coll2[:key3] = doc[:key3]
doc_coll2.delete(:_id) # remove key :_id
client[:coll3].insert_one(doc_coll2) …Run Code Online (Sandbox Code Playgroud) 使用df下面的数据框
df <- data.frame(
model=c(rep('corolla',3),rep( 'accord',3), rep('sunny',3)),
variable=c('urban_mileage', 'rural_mileage', 'highway_mileage'),
rescale=rnorm(9),
year=c(rep(1998,3),rep( 1997,3), rep(2003,3)),
kmdone=sample(10:100,9)*1e3
)
> df
model variable rescale year kmdone
1 corolla urban_mileage -1.03675182 1998 56000
2 corolla rural_mileage 1.06079162 1998 83000
3 corolla highway_mileage -0.18808551 1998 19000
4 accord urban_mileage -0.05151496 1997 69000
5 accord rural_mileage 0.05219512 1997 54000
6 accord highway_mileage -2.03139240 1997 21000
7 sunny urban_mileage -0.06225862 2003 40000
8 sunny rural_mileage 1.38191440 2003 96000
9 sunny highway_mileage -1.02367124 2003 55000
> …Run Code Online (Sandbox Code Playgroud)