【问题标题】:MYSQLI Count records where one instance of record is flaggedMYSQLI 计数记录,其中一个记录实例被标记
【发布时间】:2018-12-14 04:58:13
【问题描述】:

感谢您提供的任何帮助,因为这让我发疯了,如果能指出正确的方向,我将不胜感激。

我希望运行一个非常独特的 MySQLI 计数:计算表中标记了一个常见“会话”实例的所有行。

 SESSION      PAGE        FLAG
---------------------------------
 1            HOME        0
 1            CONTACT     0
 1            ABOUT US    900
 2            HOME        901
 3            ABOUT US    900

例如,在上表中,我试图计算在某个时间标记为 900 的会话实例的总数。在上面的示例中,我将获得标记为 900 的会话的 4 次页面浏览量。我已经尝试过

SELECT * FROM analytics WHERE FLAG='900' 

但是,我错过了标记访客/会话之前的行。我在想需要做一些子查询吗?

感谢您的帮助!

【问题讨论】:

  • 您的行上有唯一标识符吗?还是您展示的那 3 列?
  • 是的 - 我应该补充一下,我确实有一个名为 RECORD_ID 的唯一主节点,它只是为了跟踪行而自动递增。
  • 其实不需要。因为您只需要计算而不是检索行。看我的回答

标签: php select mysqli count


【解决方案1】:

如果我理解正确,应该这样做:

SELECT COUNT(*)
FROM analytics
WHERE session IN 
(
    SELECT DISTINCT session FROM analytics WHERE FLAG='900' 
)

【讨论】:

    【解决方案2】:

    如果你想计算行的唯一行,那么你可以使用 DISTANT 例如

    Select COUNT (DISTANT SESSION)
    from analytics
    

    【讨论】:

    • 您的意思是DISTINCT?我不知道mysql中有一个DISTANT。无论哪种方式,这似乎都没有考虑到特定的标志。
    • 告诉我一件事你只计算那些标志为 900 的记录
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-08
    • 2015-05-15
    • 2010-11-26
    • 2021-08-06
    • 1970-01-01
    相关资源
    最近更新 更多