Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQLite分组方式_Sqlite - Fatal编程技术网

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

我想计算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 salesTable  where timeStamp BETWEEN '"+startdate+"' AND '"+enddate+"'   GROUP BY sex ORDER BY percentage DESC" ;
我的问题是,例如,一个男性客户购买3*部手机,它会像这样存储

  • 男性客户,男性,时间戳,电话
  • 男性客户,男性,时间戳,电话
  • 男性客户,男性,时间戳,电话
本例中的时间戳是相同的,因为手机在同一时间销售。我必须把所有的东西分开存放,即使它们是因为其他原因放在一起的

现在让我们假设一位女性顾客购买2*部手机。那么我们有

  • 男性客户,男性,时间戳,电话
  • 男性客户,男性,时间戳,电话
  • 男性客户,男性,时间戳,电话
  • 女性客户,女性,时间戳,电话
  • 女性客户,女性,时间戳,电话
我想要的是50%的男性和50%的女性。我确信做这件事很容易,但我坚持做下去。我也试过按性别分组,时间戳

 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秒之后和之前我认为你需要重新审视你的模式背后的决定。它不能满足你的需要。