SQLite分组方式
我想计算SQLite查询中日期之间某些值的百分比 这就是行的外观SQLite分组方式,sqlite,Sqlite,我想计算SQLite查询中日期之间某些值的百分比 这就是行的外观 customerId, sex, timeStamp, item 我的代码 String query = "SELECT *, ROUND((count(sex)*100.0)/(SELECT count(sex) FROM salesTable where timeStamp BETWEEN '"+startdate+"' AND '"+enddate+"'),2) AS '"+PERCENTAGE+"' FROM s
customerId, sex, timeStamp, item
我的代码
String query = "SELECT *, ROUND((count(sex)*100.0)/(SELECT count(sex) FROM salesTable where timeStamp BETWEEN '"+startdate+"' AND '"+enddate+"'),2) AS '"+PERCENTAGE+"' FROM salesTable where timeStamp BETWEEN '"+startdate+"' AND '"+enddate+"' GROUP BY sex ORDER BY percentage DESC" ;
我的问题是,例如,一个男性客户购买3*部手机,它会像这样存储
- 男性客户,男性,时间戳,电话
- 男性客户,男性,时间戳,电话
- 男性客户,男性,时间戳,电话
- 男性客户,男性,时间戳,电话
- 男性客户,男性,时间戳,电话
- 男性客户,男性,时间戳,电话
- 女性客户,女性,时间戳,电话
- 女性客户,女性,时间戳,电话
String query = "SELECT *, ROUND((count(sex)*100.0)/(SELECT count(sex) FROM salesTable where timeStamp BETWEEN '"+startdate+"' AND '"+enddate+"'),2) AS '"+PERCENTAGE+"' FROM salesTable where timeStamp BETWEEN '"+startdate+"' AND '"+enddate+"' GROUP BY sex, timeStamp ORDER BY percentage DESC" ;
最后,但没有起作用
我使用sex和value在Androids列表视图中填充它,如下所示
- 男性50%
- 女性50%
select sex, count(distinct customerId) from salesTable group by sex;
这将返回两行,例如
F|3
M|1
这给出了女性和男性的总数。从那里你可以计算出百分比。MySQLNo运行良好,但你想用50/50实现什么?我想看看我的客户中有多少是男性,有多少是女性。上面的查询显示了每行唯一的sameIs
customerId
,或者是同一个人购买的所有商品的相同值?谢谢,但这对我来说不起作用,因为如果同一个客户在不同的日期/时间购买某样东西,这就不算了。我甚至不能使用时间戳来区分,因为有时会在一秒钟后插入值,因为它们是逐个插入的。可能是因为Android Emulator有点慢。如果你不能区分相同的时间戳或customerId字段,我不知道你将如何唯一地识别客户!如果两个不同的男人同时购买怎么办?你需要能够区分他们。两个不同的人在同一时间是不可能的。但也许我可以在两者之间使用。时间戳存储为unix时间戳。如果用户速度非常快,则插入下一次销售大约需要3-4秒。有没有办法用2+和2-进行分组或区分?我的意思是2秒之后和之前我认为你需要重新审视你的模式背后的决定。它不能满足你的需要。