如果您想了解SQL使用多个/相关列计算项目频率?的相关知识,那么本文是一篇不可错过的文章,我们将对sql多条数据计算总金额进行全面详尽的解释,并且为您提供关于Android,如何使用麦克风来计算声音频
如果您想了解SQL使用多个/相关列计算项目频率?的相关知识,那么本文是一篇不可错过的文章,我们将对sql多条数据计算总金额进行全面详尽的解释,并且为您提供关于Android,如何使用麦克风来计算声音频率?、ASP.NET MVC4中@model使用多个类型实例的方法、asp使用Weekday函数计算项目的结束时间、Chainsql使用相关笔记的有价值的信息。
本文目录一览:- SQL使用多个/相关列计算项目频率?(sql多条数据计算总金额)
- Android,如何使用麦克风来计算声音频率?
- ASP.NET MVC4中@model使用多个类型实例的方法
- asp使用Weekday函数计算项目的结束时间
- Chainsql使用相关笔记
SQL使用多个/相关列计算项目频率?(sql多条数据计算总金额)
我有一个3列和数千行的表,前2列有数据。第三列当前为空,我需要根据第一列和第二列中已有的数据填充第三列。
假设我在第一栏中有状态,在第二栏中有水果条目。我需要编写一条SQL语句来计算 每种水果来自的不同状态数
,然后将此流行度数字插入到每一行的第三列中。该行中的受欢迎程度数字1表示水果仅来自一个州,受欢迎程度数字4表示该水果来自4个州。所以我的桌子目前是这样的:
state fruit popularityhawaii apple hawaii apple hawaii banana hawaii kiwi hawaii kiwi hawaii mango florida apple florida apple florida apple florida orange michigan apple michigan apple michigan apricot michigan orange michigan pear michigan pear michigan pear texas apple texas banana texas banana texas banana texas grape
我需要弄清楚如何计算然后更新第三列,即受欢迎程度,这是出口该水果的州数。目标是生成下表(对不起的双关语),根据上表,在所有4个州中都出现“苹果”,在2个州中都出现了橘子和香蕉,而在1个州中只出现了奇异果,芒果,梨和葡萄。状态,因此它们对应的受欢迎程度数字。
state fruit popularityhawaii apple 4hawaii apple 4hawaii banana 2 hawaii kiwi 1hawaii kiwi 1hawaii mango 1 florida apple 4 florida apple 4 florida apple 4 florida orange 2 michigan apple 4michigan apple 4michigan apricot 1michigan orange 2michigan pear 1michigan pear 1michigan pear 1texas apple 4texas banana 2texas banana 2texas banana 2texas grape 1
我小的程序员头脑说,试图找到一种在某种脚本中循环遍历数据的方法,但是对SQL和数据库有所了解,似乎您并没有在SQL中编写冗长而缓慢的循环脚本。我什至不确定是否可以?但是相反,在SQL中有更好/更快的方法可以做到这一点。
任何人都知道如何在SQL语句中为每一行计算和更新第三列,在此称为流行度,并与每种水果所来自的状态数相对应?感谢您的阅读,非常感谢您的帮助。
到目前为止,我已经在下面尝试了这些SQL语句,这些语句可以输出,但并不能完全满足我的需要:
--outputs those fruits appearing multiple times in the tableSELECT fruit, COUNT(*) FROM table GROUP BY fruitHAVING COUNT(*) > 1 ORDER BY COUNT(*) DESC--outputs those fruits appearing only once in the tableSELECT fruit, COUNT(*) FROM table GROUP BY fruitHAVING COUNT(*) = 1--outputs list of unique fruits in the tableSELECT COUNT (DISTINCT(fruit)) FROM table
答案1
小编典典如果您只想使用优先级来更新表,它将看起来像:
update my_table x set popularity = ( select count(distinct state) from my_table where fruit = x.fruit )
如果要选择数据,则可以使用分析查询:
select state, fruit , count(distinct state) over ( partition by fruit ) as popularity from my_table
这提供了每个水果不同状态的数量。
Android,如何使用麦克风来计算声音频率?
我正在研究音频调谐器应用程序以调整乐器.
用户应该播放一个音符,然后在我的应用程序中,我应该显示它有哪个频率.
首先,我应该访问麦克风?
AudioRecord recorder = new AudioRecord(MediaRecorder.AudioSource.MIC,sampleRate,AudioFormat.CHANNEL_IN_STEREO,AudioFormat.ENCODING_PCM_16BIT,bufferSize);
然后我需要计算声音的频率.我怎样才能做到这一点?
> http://www.psychicorigami.com/2009/01/17/a-5k-java-guitar-tuner/
> http://www.codeproject.com/Articles/32172/FFT-Guitar-Tuner
编辑:
我认为我可以更好地链接到这个网站上的许多替代品,人们试图制作吉他调音器.
> How to create tuner that runs continuously?
> Sound convertion to frequency in android
> Real time pitch detection
重新编辑:
FFT.java
解决了我的问题. (没有正确链接,因为我是新用户)
ASP.NET MVC4中@model使用多个类型实例的方法
总结
以上是小编为你收集整理的ASP.NET MVC4中@model使用多个类型实例的方法全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
asp使用Weekday函数计算项目的结束时间
今天看到一个帖子求项目完成的时间,需求是这样的:
给你一个项目的开始时间,给你项目总需求的天数,求项目的项目结束时间?注意:周六周日为休息日。
在asp编程开发中,计算时间很容易,直接用项目开始时间+天数,即可得到项目结束时间,但这里麻烦就在要排除周六和周日这两个休息时间。
经过思考,代码写出来了,放在这里和大家分享一下:
<% starttime=cdate("2013-09-08") ''项目开始时间 endtime="" ''项目结束时间 num=8 ''项目需要的天数 response.write "开始时间:"&starttime&"<br>天数:"&num&"<br>结束时间:" starttime=starttime-1 i=1 while i <= num starttime=starttime+1 w=weekday(starttime) if w>1 and w<7 then ''非周末 endtime=starttime i=i+1 else ''周末休息 end if wend response.write endtime %>
(鼠标移到代码上去,在代码的顶部会出现四个图标,第一个是查看源代码,第二个是复制代码,第三个是打印代码,第四个是帮助)
运行一下,即可看到结果。你也可以修改一下里面的项目开始时间和项目天数,再通过万年历来比较检查一下它的计算结果是否正确。
Chainsql使用相关笔记
安装
按照github上chainsql的安装过程,这里主要介绍区块网络搭建过程(4个验证节点,其中只有一个节点[10.11.6.120]配置了数据库):
1、根据官方文档上配置文件的案例,修改chainsql.cfg。这里要注意peer,rpc,wss_admin,wss_public的端口配置,如下案例中4个节点的配置,其中一个节点的配置信息如下:
#端口配置列表
[server]
port_rpc_admin_local
port_peer
port_ws_admin_local
#http端口配置
[port_rpc_admin_local]
port = 5005
ip = 127.0.0.1
admin = 127.0.0.1
protocol = http
#peer端口配置,用于p2p节点发现
[port_peer]
port = 51235
ip = 0.0.0.0
protocol = peer
#websocket端口配置
[port_ws_admin_local]
port = 6006
ip = 127.0.0.1
admin = 127.0.0.1
protocol = ws
其余的配置信息部分如下:
#对等连接的其他主机的ip,以及对于的peer端口设置
[ips_fixed]
10.11.6.116 51236
10.11.6.117 51237
10.11.6.118 51238
还有要注意的是,就是sync_db注意在centos下要修改unix_socket的配置。以及auto_sync开启设为1。
2、执行./chainsqld --conf="./ chainsqld-example.cfg" validation_create生成相应的validators、validation_seed(密钥)、validation_public_key(公钥),内容如下。将这些生成的内容加入chainsql.cfg中。其他四个节点也依此配置。
{
"id" : 1,
"result" : {
"status" : "success",
"validation_key" : "OTT SOME DEE WOVE EAT SOME QUOD KUDO NIP HOW LEER HOSE",
"validation_private_key" : "pcvYu2QigM37t2jGar6EJSsRSdsV7H63R2Ae52WTZycZqNseT8a",
"validation_public_key" : "n9KnRfJ3wnCF8WaGmhf3EENSfMxc3KyWLzEKXmnP5pssZkci53DV",
"validation_seed" : "xxSm9kEKBDqrrfskWJV8wXRc6izLQ"
}
}
根据文档中结构网络完成后,四个节点都启动后可以查看其他节点的运行情况,成功配置后节点的运行情况如下图所示:watch ./chainsqld peers。
对chainsql 数据库的操作
按照chainsql的使用说明进行操作,去github上下载node-chain-sql,在package.json的dependencies中添加“chainsql":"^0.6.20”。执行 然后执行npm install命令和npm install chainsql --save,如果第二个语句执行不成功,则将执行语句换成npm install chainsql --save --force。要注意的是使用说明中一些测死案例是在node7.6的版本的基础上去使用的, 如果版本错误,会出现一些符号错误的问题(如await等异步同步问题)。
1、创建用户
根据文档说明,首先要创建根用户,通过根账户(文档中说明了根账户如何创建)向新建的账户转账,才能激活新账户,创建账户的代码如下,其中owner是生成的根账户信息:
''use strict'';
const ChainsqlAPI = require(''chainsql'').ChainsqlAPI;
const c = new ChainsqlAPI();
var owner = {
secret: "xnoPBzXtMeMyMHUVTgbuqAfg1SUTb",
address: "zHb9CJAWyB4zj91VRWn96DkukG4bwdtyTh"
}
//var user ={
// secret: ''xx26wgq6XbnTLrNgDn21dqjBMsD38'',
// address: ''zp7mxMmrDwAGQqPeSBpT5wKaM4RpGaKWeW''
//}
let account = c.generateAddress();
console.log(account)
c.connect(''ws://127.0.0.1:6006'').then( ()=>{
console.log(''连接成功'')
c.as(owner); //这里owner指一个有足够zxc的账户,第一个转账操作肯定要用根账户
let ret = c.pay(account.address,100000000).then((ret)=>{
console.log(ret);
})
}
);
输出结果为tesSUCCESS 说明提交成功。
如果失败可能是官方把版本 给升级类,可以这样试一试
var amount = {
value: 20000
}
res = await c.pay(user.address, amount).submit({ expect: ''validate_success'' })
console.log(res)
2、创建数据库,以及往数据库中插入数据
根据官方的使用说明,可以根据以下的案例,其中的user是刚才激活的新账户。
''use strict'';
const ChainsqlAPI = require(''chainsql'').ChainsqlAPI;
const r = new ChainsqlAPI();
var user = {
secret: ''xpiCV45NQ3bRxPJvmjBgkTLPwMqAC'',
address: ''zNn8qGS3spd8vyRJ88NpymiGEqKxvxgikY'',
publicKey: ''cBQFdZcmk5xsbqN8yPvk1Ay9L4PrgviGwcHxzoT7gN2XRtfqXzRR''
}
r.connect(''ws://127.0.0.1:6006'', function(err, data) {
if (err) {
console.log(''连接失败. '');
return
}
console.log(''连接成功'');
r.as(user);
r.createTable("dc_universe", [
{
''field'':''id'',
''type'':''int'',
''length'':11,
''PK'':1,
''NN'':1,
''UQ'':1
},
{
''field'':''name'',
''type'':''varchar'',
''length'':50,
''default'':null
},
{
''field'':''age'',
''type'':''int''
}]
).submit();
r.table("dc_universe").insert({id:1, name: ''peera'',age: 22},{id:2, name: ''peerb'',age: 21}).submit();
getLedger();
});
function getLedger() {
r.getLedger({
ledgerVersion: 22
}, function(err, data) {
console.log(err, data)
})
}
一次性向数据库的表中插入多条数据,同时查看交易信息,可以根据以下的案例进行测试,这个user是另外激活的新账户,与上面不同:
''use strict'';
const ChainsqlAPI = require(''chainsql'').ChainsqlAPI;
const c = new ChainsqlAPI();
var root = {
secret: ''xnoPBzXtMeMyMHUVTgbuqAfg1SUTb'',
address: ''zHb9CJAWyB4zj91VRWn96DkukG4bwdtyTh''
}
var user ={
secret: ''xx26wgq6XbnTLrNgDn21dqjBMsD38'',
address: ''zp7mxMmrDwAGQqPeSBpT5wKaM4RpGaKWeW''
}
c.connect(''ws://127.0.0.1:6006'').then( async ()=>{
console.log(''连接成功'')
c.as(root); //这里owner指一个有足够zxc的账户,第一个转账操作肯定要用根账户
c.setRestrict(false);
// var raw=[ { id: 61, name: ''peer61'', age: 71 },{ id: 62, name: ''peer62'', age: 72 }];
var raw=[];
for(var i=62;i<67;i++){
raw.push({''id'':i, ''name'': ''peer''+i,''age'': i+10});
// var raw=[{id:15+i, name: ''gqx''+i,age: 23+i}];
// console.log(raw);
// c.table("dc_universe").insert(raw).submit({expect:''db_success''});
}
// console.log(raw);
// var raw=[
// {''id'':7, ''name'': ''gqx11'',''age'': 25},
// {''id'':8, ''name'': ''gqx22'',''age'': 45},
// {''id'':9, ''name'': ''gqx33'',''age'': 64}
// ]
// var rs=await c.table("dc_universe").insert(raw).submit({expect:"db_success"});
// console.log(rs);
var opt = {limit:200}
c.getTransactions(''zp7mxMmrDwAGQqPeSBpT5wKaM4RpGaKWeW'',opt,callback);
}
);
function callback(err,data){
if(err){
console.error(err);
}else{
console.log(JSON.stringify(data));
}
}
最后,要注意一些问题,比如官方文档的说明中有些错误,比如插入数据的格式问题,还有架设网络的第二步中检查是否成功,只需要在chainsql目录中执行(centOs)watch ./chainsqld server_info等等。还有要注意插入数据时,插入数据的操作者要有足够的费用去支持插入的行为,否则即使插入不成功,也不会出现错误信息,很难发现错误。
今天的关于SQL使用多个/相关列计算项目频率?和sql多条数据计算总金额的分享已经结束,谢谢您的关注,如果想了解更多关于Android,如何使用麦克风来计算声音频率?、ASP.NET MVC4中@model使用多个类型实例的方法、asp使用Weekday函数计算项目的结束时间、Chainsql使用相关笔记的相关知识,请在本站进行查询。
本文标签: