mysql - 按当前列和时间计算行数

标签 mysql

我的查询有问题。我想计算特定时间特定列中特定短语的出现次数。

这是我的 table :

CREATE TABLE `table` (
  `id` int(11) NOT NULL,
  `prodId` int(11) NOT NULL,
  `bookingAt` datetime NOT NULL,
  `equipmentType` varchar(30) NOT NULL,
  `shippingAt` datetime DEFAULT NULL
)

我有一个正在检查库存收据数量的有效查询:

SELECT g1.equipmentType,COUNT(*) as count FROM table g1
WHERE g1.shippingAt IS NULL AND 
g1.bookingAt BETWEEN :from AND :to GROUP BY g1.equipmentType

但我不知道如何构建已发送产品的查询:( 表中的示例数据:

INSERT INTO `table` (`id`, `prodId`, `bookingAt`, `equipmentType`, `shippingAt`) VALUES
(1, 9911199, '2018-04-05 09:30:03', 'Type1','2018-04-05 14:00:00'),
(2, 9911100, '2018-04-05 08:00:00', 'Type1','2018-04-05 14:10:00'),
(3, 1234563, '2018-04-05 10:05:40', 'Type2', NULL);

我的查询的工作结果(预订):

array [
  0 => array [
    "equipmentType" => "Type2"
    "count" => "1"
  ]

预期结果(发货):

array [
  0 => array [
    "equipmentType" => "Type1"
    "count" => "2"
  ]

最佳答案

在 ShippingAt 上的 NULL 测试中添加“NOT”将为您提供已发货的产品。

SELECT g1.equipmentType,COUNT(*) as count 
FROM table g1
WHERE g1.shippingAt IS NOT NULL 
AND g1.bookingAt BETWEEN :from AND :to 
GROUP BY g1.equipmentType;

此查询基于您提供的表格和数据,但它与标题或您在问题开始时询问的内容有何关系是一个谜。

关于mysql - 按当前列和时间计算行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49670927/

相关文章:

Mysql查询在不同表中搜索同一列

mysql 两列自增主键

php - Laravel - SQLSTATE [42000] : Syntax error or access violation: 1064 on migration

mysql - SQL 查询在 Web 托管上执行时出现错误,但在 localhost 上运行时没有问题

javascript - 如何使 div 可编辑到 textarea 并上传/删除现有图像

java - 无法在mysql表字段中存储完整的json字段

php - 引用用户上传的文件 - 数据库还是文件名?

php - 在 wordpress 代码中调用外部函数

mysql - 如何避免MySQL更新中相关子查询分配中的多列

mysql - `SELECT field AS` 在 2 个表之间使用 UNION 导致错误#1064